2008-03-01から1ヶ月間の記事一覧

Problem12が解けたっ

30分プログラム、その275。id:Gemmaさんのアドバイスのおかげでやっと、三角数の約数が解けた。アドバイスの内容は、 いいかい。約数っていうのは、素因数分解を元に計算するだろ。 でもって、値が小さくて約数を多く持つ数というのは、小さい素因数を数多く…

なぜProblem12が解けんのだ

ここ数日チャレンジしているけれど、Project EulerのProblem12が一向に解けない。Problem 12 - Haskellはスケるよは、実に素直に書いてるように見える。concatと内包表記の使い方は素晴しいとは思うけれど、アルゴリズム的にはすごく素直に最初から探索して…

素数計算

30分プログラム、その274。Erlangで素数計算。 Project EulerのProblem12を解くために素因数分解がいるので、それの準備。 素数のリストが欲しいけれど、ムダな計算は避けたい。Schemeとかだったら遅延リストやストリームを使うタイミングだけど、Erlangだっ…

ホワイの(感動的)Rubyガイド

ホワイの(感動的)Rubyガイド BEST SOFTWARE WRITINGに要約が載っていて、なかなかしっかりしているように感じたので。 RailsやってるけどRubyが分からん、と嘆いていたhmxは読むといいんじゃないかな。 アメリカのティーンエイジャーはこれを読むと笑いころ…

BEST SOFTWARE WRITING読み終わった

BEST SOFTWARE WRITING作者: Joel Spolsky,青木靖出版社/メーカー: 翔泳社発売日: 2008/02/21メディア: 単行本(ソフトカバー)購入: 9人 クリック: 201回この商品を含むブログ (109件) を見る帯にJoel Spolsky×青木靖と書いてあったので買ったら、Joelは著…

三角数の約数(3)

30分プログラム、その273。三角数の約数 via Project Euler、その3。 まだ解けない。同じマシンで動かしているのに別のErlangノードと通信できない。他のマシンだと、同じ方法でできるのになぁ。 できるマシンでしばらく動かしてみたけれど、解ける気配がし…

Perlにコーディング規約は存在しない

BEST SOFTWARE WRITINGによるとPerlのコーディング規約というものは存在していないらしい。 たしかにGoogleで検索しても引っかからない。google:Perl コーディング規約

Rails本再読

ここ2日ほど仕事でRailsを使っているのでRailsによるアジャイルWebアプリケーション開発の前半部分を再読。たいぶ色々忘れているなぁ。でも読めば思いだせるのは幸い。 後半の各モジュールの詳細は、使っているActiveRecordとActiveView、ActiveControllerの…

三角数の約数(2)

30分プログラム、その272。三角数の約数 via Project Euler、その2。 分散計算しようと思ったらErlangのビルドに予想以上に時間がかかっているので、昨日(id:mzp:20080326)のやつに途中キャンセルの機能などを追加してみた。 使い方 1> problem12:start(). 7…

三角数の約数(1)

30分プログラム、その271。三角数の約数 via Project Euler、その2。 ひとつのマシンで無理ならErlangで分散処理してやろうと、Erlangで書き直してみた。 プロセスAでは偶数番目の三角数のチェックを、プロセスBでは奇数番目の三角数のチェックをするという…

三角数の約数

30分プログラム、その270。三角数の約数 via Project Euler。 三角数の数列は自然数の和で表わされ、7番目の三角数は 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 である。 三角数の最初の10項は 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... となる。最初の7項について、…

プログラミングErlang読みおわった

プログラミングErlang作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行本(ソフトカバー)購入: 8人 クリック: 284回この商品を含むブログ (97件) を見る読みおわった。英語版も読んだけれど、日本語のほうが読みや…

誤字: rectongle

プログラミングErlangの誤字。P.287のコード compute_area({rectangle,X,Y}) -> X*Y. は compute_area({rectongle,X,Y}) -> X*Y. の間違いです。以下のコードにはわざと間違いをまぜてある、という文脈なのに全然間違いが見つからなくて困った。原書をもって…

ビット構文がすごい

プログラミングErlangより。 Erlangのビット構文がすごい。例えば、16ビットのRGBカラーの場合、 1> <<R:5,G:6,:B:5>> = Color. 2> Color2 = <<R:5,G:6,:B:5>>. でアンパックやパックができる。 シフトやマスクでとり出すよりも断然、見やすいですよね。</r:5,g:6,:b:5></r:5,g:6,:b:5>

200万までの素数の和

30分プログラム、その269。200万までの素数の和 via Project Euler。 最近、勉強しているErlangでチャレンジ。でも並列計算ではない。 またも失敗。素数は鬼門だ。 エラトステネスのふるい -> 終了しない。そうかエラトステネスはO(N^2)か フェルマーテスト…

ピタゴラス数

30分プログラム、その268。ピタゴラス数 via Project Euler。 ピタゴラスの三つ組(ピタゴラスの定理を満たす整数)とはa そのままやったら、とても解けなかったので式を変形してみた。 これだと一瞬で解ける。すげぇ。 使い方 $ python problem9.py a=200 b=3…

プログラミングGaucheを読んだ

プログラミングGauche作者: Kahuaプロジェクト,川合史朗出版社/メーカー: オライリージャパン発売日: 2008/03/14メディア: 大型本購入: 22人 クリック: 713回この商品を含むブログ (244件) を見るを読み終った。せっかくid:Gemmaさんのおかげでフラゲできた…

文字列補間がすごい

プログラミングGaucheより。 gosh> (define x 30) x gosh> #`"x is ,x" "x is 30" gosh> '#`"x is ,x" (string-append "x is " (x->string x) "") これはいい。いちいちstring-appendを使っていたのが恥かしい。

5つの連続する数の積

30分プログラム、その267。5つの連続する数の積 via Project Euler。 以下の1000桁の数字から5つの連続する数字を取り出して その積を計算する。そのような積の中で最大のものの値はいくらか。 73167176531330624919225119674426574742355349194934 96983520…

日本語ってすばらしい

プログラミングGaucheを読んでいて思ったんだけど日本語はすばらしい。 例えば、「クラス」という非常にややこしい言葉を簡単に伝えられる。 あと、コルーチンの動作例の one いち two に tree さん one し two ごー!! ...がとても読みやすい。ちなみに英語…

10001番目の素数

30分プログラム、その266。10001番目の素数 via Project Euler - PukiWiki。 素数を小さい方から6つ並べると2,3,5,7,11,13であり、6番目の素数は13である。 10001 番目の素数を求めよ。 できませんでした。コードは書いたけど、全然計算が終了しない。せっか…

正規表現すごい

プログラミングGaucheより。 Gaucheの正規表現拡張がすごい。 (rxmatch #/h+/ "hoge") と (#/h+/ "hoge") が等価だったり、 ; (define m (#/h+/ "hoge")) (rxmatch-substring m) (rxmatch-before m) (rxmatch-after m) と (m) (m 'before) (m 'after) が等価…

和の二乗と二乗の和の差

30分プログラム、その265。和の二乗と二乗の和の差 via Project Euler - PukiWiki。 最初の10個の自然数について、その和の二乗と、二乗数の和は以下の通り。1² + 2² + ... + 10² = 385 (1 + 2 + ... + 10)² = 3025これらの数の差は 3025 - 385 = 2640 とな…

Google Gearsスタートガイド

Google Gearsスタートガイド作者: 白石俊平出版社/メーカー: 技術評論社発売日: 2007/12/06メディア: 単行本(ソフトカバー)購入: 1人 クリック: 41回この商品を含むブログ (15件) を見る読み終わった。キレイにまとまっていい本だと思う。ありがとう、id:s…

Schemeの評価戦略

プログラミングGaucheを読んでいたら、 Schemeでは作用順序評価という方法を採用しています。 (中略) 作用順序評価は、手続き適用式の手続き引数を順に評価してから、手続きを評価するモデルです。 と書いてあった。 Schemeって最左最内評価で、一番左の手続…

Google Gearでチャネル通信

最近、Google Gearsスタートガイドを読んでいる。で、普通にチャネル通信ができるみたいで驚いた。 Google GearはオフラインWebアプリケーションを実現できるように、Javascriptにいくつかの機能を追加している。追加された機能に、マルチスレッドを実現する…

最小の積

30分プログラム、その264。最小の積 via Project Euler - PukiWiki。 2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり、そのような数字の中では最小の値である。 では、1 から 20 までの整数全てで割り切れる数字の中で最小の値はいくらになる…

Firefox3は速い

http://www.mozilla-japan.org/products/firefox/all-beta.htmlすげー。めちゃくちゃ速いー。

http://fastladder.com/reader/をはてブしたい

30分プログラム、その263。http://fastladder.com/reader/をはてブしたい。 Fastladderにログインしないで、http://fastladder.com/reader/にアクセスするとログインページにリダイレクトされてしまうため、はてブに登録できない。参考: はてなブックマーク…

Feed::mixi

mixiをPraggerで読めるようにする。自分でHTMLを解析するのではなく、mixiツールバー用のAtomを取得するようにしている。 ただ、Atomをパースする方法がよく分からなかったし、特に必要もなかったので、パースせずに文字列のまま渡している。 設定ファイル例…