プログラミング

回帰直線をPythonとMatplotlibで描く

2つのリストの要素から回帰直線を導出して、MatplotlibでプロットするプログラムをPythonで書いてみた。たぶんへんてこなプログラムだと思うけど、気にしない。 ※ 追記 sum = 0 lst = [1, 2, 3] for i in lst: sum += i のようなことやってるけど、sum(lst)…

GP(Genetic Programming)

遺伝的プログラミングについてのフリーなPDF文書が紹介されていたので何となく紹介。http://www.gp-field-guide.org.uk/150ページ以上とそこそこ分量はあるけど、あとで読んでみよう。 メモ: 遺伝的プログラミング(いでんてき-、英 Genetic Programming GP…

自作ブログの機能の追加にはSQLの知識が必要ぽ

書いた記事やコメントなどを保存するためにデータベースが必要なんだけど、今までにSQLやったことないからよく分からないんだよなあ。今はSQLiteというデータベースで練習してる。幸いなことにPythonにはSQLAlchemyというデータベースの操作をいろいろと手助…

Pylonsでブログ作成

Pylonsのマニュアルとかチュートリアルを見ながら作ってみた。こんな感じ 今のところ記事の追加と編集まではできるけど、ブログといえばこれという機能についてはまだまだだな。たとえばコメントとかトラックバックとか、あとRSSとかも。これらがあるとよう…

部分集合の列挙プログラム

このプログラミング問題がわからない>< 集合{1,2,・・・n}のk元部分集合ずつすべて列挙するプログラムを書け。ただし、部分集合の総数が大きくなっても、適当なメモリーしか使わないものとする。 とりあえずは、メモリーに関しては無視してプログラムを書…

R言語でモンテカルロ法

前回の記事でPythonを使ったモンテカルロ法によるπの導出を、今度はR言語でやってみた。 > montecarlo <- function(n) { + count <- 0 + for(i in 1:n) { + s <- runif(2) + if(sqrt(s[1]^2 + s[2]^2) < 1) { + count <- count + 1 + } + } + return(4*count…

Pythonでモンテカルロ法によるπの推定

プログラム練習(`・ω・´)。 モンテカルロ法によって単位円の面積を求める。その方法は・・・ ※Gimpで描いてみた。まあまあうまくいったかな。 以下プログラム: # coding:shift-jis import decimal, random def MonteCarlo(n): """ モンテカルロ法で単位円…

IronPythonいぢり

最近買ってみたPythonクックブック第2版より、IronPythonの例を試してみて面白かったので紹介してみる。まずIronPythonってのはPython言語の.NETへの実装のこと。.NETってのは正式には.NETフレームワークといって、マイクロソフトが開発したアプリケーショ…

スランプ

頑張って一流のプログラム使いになるためにプログラムの勉強をしているけど、なんだか壁にぶち当たってる感じがする。プログラムを読んで、自分で書いて、理解してを繰り返してるけど、全然成長した気がしない。実際プログラムを書けといわれたらきっと今ま…

Model-View-Controller (MVC) architecture

Webアプリケーションについて前から興味があったのでいろいろ情報を探してみたらちょっと面白いものを見つけた。Model View Controller: http://ja.wikipedia.org/wiki/Model_View_ControllerModel そのアプリケーションが扱う領域のデータと手続き(ビジネ…

やっぱり言語についてちゃんと学ばないとダメだね

前回や前々回の記事にある自分が書いたプログラムを見て思うのは、 やたらメインプログラムが長い(サブールーチンをあまり使ってない) PythonのAPIをちっとも使ってない もっと簡潔に書ける方法をあまり考えてない こと。これらがまだまだ未熟だからきれいで…

逆ポーランドで代入演算できるようにした

最近続けてきた逆ポーランド記法による計算プログラム、もういけるところまでいっちゃえとばかりにまた書いてみた。今回は式(たとえば、a=3+5,b=c+d)による代入演算の対処について。 内容は、もしインプットされた要素の中に=が含まれていたらそれをexpリス…

前回の逆ポーランド記法プログラムの改良版

前回のプログラムの問題点 apple + lemmon を逆ポーランド変換記法に変換しようとすると ['a', 'p', 'p', 'l', 'e', 'l', 'e', 'm', 'm', 'o', 'n', '+'] となってしまう点を何とか解決。使ったのは正規表現で、集合とは特に関係なかった。プログラムは def …

Pythonで逆ポーランド記法プログラムを書いてみた

逆ポーランド記法というのは、たとえば 2 + 3 という式を 2 3 + と表記する記法、つまり2つの演算対象の後ろに演算子をつけるように変換する記法のこと。Lispの逆(つまりポーランド記法?)バージョンといえるのかな。 (a+b*c)*(p-q) なら(プログラムでは括弧…

いろいろとPythonモジュールを試してきた

前回の記事で「じゃんけんゲームじゃしょぼいからオセロプログラムを作ろう」と思い、ネット上を徘徊していたんだけど、その途中でいろんなPythonモジュールに出会った。それらをインストールし、使い方を学んでいるうちにオセロゲームなんてどうでも良くな…

練習にじゃんけんプログラムを書いてみた

Pythonでは、あるリストからランダムにその要素を取り出す関数があって、それは random.choice(List) のように使う。たとえば >>> lst = [1,3,5] >>> random.choice(lst) 3 >>> random.choice(lst) 1 これを知ったとき、ふと「コンピュータとじゃんけんがで…

ひさびさのプログラミング勉強

帰省から久しぶりのプログラミング勉強。帰省中のおよそ2週間はパソコンをほとんど使わなかったのでちょっと忘れかけてる・・・。やっぱり継続は大事だなあ。というわけでリハビリを兼ねてプログラムを書いてみた。内容は任意の年、月、日を入力してその日の…

文字列をひらがな・漢字・カタカナ・アルファベットに分ける

ちょっと前にプログラミング練習として、入力した文字が例えば漢字ならTrueを返し、そうでなければFalseを返すプログラムを書いた。ついでにひらがな・カタカナ・アルファベットの場合も書いた。それぞれこんなプログラム↓ def isHiragana(char): #引数がひ…

Pythonでプログラミング練習

プログラミング練習の定番?素数表示プログラムについて。普通にやれば def prime1(n): #普通の素数表示プログラム for i in range(2,n): for j in range(2,i+1): if i % j == 0: break if i == j: print i, ' ', のようにするのだと思うけど、これは遅すぎ…

関数を作って保存

今日もPythonをいろいろいじってみた。内容は前回と同じで関数の定義ばかりだけど、これがまた面白い。たとえばlogの計算をちょっとした表にして表すプログラムを作ったとする。 >>> x = 1.0 >>> while x <= 5: print x, '\t', math.log(x) x = x + 1 1.0 0.…

Pythonをいじってみた

ここ最近JavaとCの勉強に行き詰ってプログラミング勉強への意欲が失われてしまったように思っていた。昨日も何かとややこしくて冗長なプログラムを読んでいても楽しさはあまり感じなかった。そこで気分転換に何か新しい言語いじってみようと思って、ちょうど…

久しぶりの更新

追記7/20:2次方程式ではなくて連立方程式だったことに今気付いた・・・。この記事に出てくる「2次方程式」は全て「連立方程式」の間違い。 1週間弱ぶりの日記更新だ。最近テストのこととかいろいろあってちっともコンピュータの勉強ができないや。速く夏休…

明解C言語演習問題〜解答編

演習問題4−13から4−18までの解答。問題編はこっち ・演習4−13 #include<stdio.h> int main(void){ int i, j=1, no; printf("整数を入力してください:"); scanf("%d", &no); for(i=0; i<no; i++){ printf("%d", j++); if(j == 10) j=0; } putchar('\n'); return(0); } ・演習4−14 #include <stdio.h> int main(void){ int x, y, z; double t; printf("何cmから:"); s…</no;></stdio.h>

明解C言語演習問題〜問題編

久しぶりのC言語勉強。やろうやろうとは思うんだけど、ついついほかの事に注意がいってしまってどうも身が入らないんだよなあ。 今回は第4章演習問題4−13から5章まで。内容は前回の記事の続き。 ・演習問題4-13 下に示すように、1234567890を繰り返し表示…

サーバーサイドJavaの勉強2

いろいろ情報を集めながらサーバーサイドというか、Java ServletやJSPをちょこっと勉強した。一応これを勉強すればCGIが使えるようになるわけだね。まだまだ初歩の初歩だけどがんがん勉強だ(`・ω・´) そういえば、プログラムを勉強してて最近気付いたこと。…

サーバーサイドJava

久しぶりの日記更新(`・ω・´) 6月のじめじめした湿気にやられて無気力状態になってしまってしばらく何もする気にならなくなってしまったけど、ようやく調子が戻ってきた。気持ちを切り替えるには部屋の掃除をするといい見たい。犯罪者の部屋はすごくすさん…

素数プログラミング〜エラトステネスのふるい

素数を発見するアルゴリズム、エラトステネスの篩のプログラミングについて。エラトステネスのふるいというのは素数を見つけ出すアルゴリズムで、 1.2からnの数を全て「ふるい」にいれる 2.「ふるい」の中で最小数を素数とする。 3.今求めた素数の倍数…

C言語練習問題〜解答編

明解C言語演習問題その5の問題編の解答。 演習4-1. #include <stdio.h> int main(void){ int num, x; do{ printf("非負の整数を入力してください:"); scanf("%d", &num); if(num < 0) puts("\a負の値を入力しないでください。"); } while(num < 0); printf("%dを逆</stdio.h>…

C言語練習問題〜問題編

ちょくちょくCのお勉強。今日は4章から。簡単すぎるなあというところは省略。 最近JavaばかりやってたからCは久しぶりだな。 演習4-1.次のように表示するプログラムを作成せよ。 非負の整数を入力してください:1234 1234を逆から読むと4321です。 演習4-2…

Javaでインターネットを使ったプログラミング勉強

今日はネットワーク系のJavaプログラミングを勉強した。内容はいわゆるブラウザで右クリックからのソースの表示のようなもの。ついでにContentTypeとDateとLastModifiedも表示してる。 import java.net.*; import java.io.*; import java.util.*; public cla…