flytalesの日記スマートフォン用の表示で見るflytalesの日記この広告は、90日以上更新していないブログに表示しています。2010-03-03素数を計算するプログラミングチームラボさんのブログにC言語の練習にちょうど良さそうな課題があったのでやってみた。1000万個目の素数を超高速に出力せよエラトステネスの篩自体はそんなにむずかしくなかったけど、ちょっと大きめの配列を宣言したらスタックがあふれた・・・のでmallocでメモリを確保する。ポインタ操作になれないのでポインタのアドレスを書き換えて変な動作になったりしてド素人な感じです。mallocで宣言してもintの配列だと1000万個目の素数を弾きだすためには数百Mくらいメモリが必要なので、32bitのintを32個のbit配列として扱うようにした。BitSetっていうらしい。俺ってアッタマいーいとか思ってたらまあ誰でも思いつくことのようで・・・そんなこんなで3時間どころか5時間くらいかかって9秒くらいでした。最初ReleaseじゃなくてDebugで実行して計測してしまい、19秒とかだったので俺は馬鹿でC言語なんて使う資格ないんじゃないかとか、チームラボのエンジニアは化け物か!とか思ったけど結論としては俺はマヌケということだった。無駄はまだまだあるけど面倒になってきたのでこれで終わりに使用。チームラボさんとこの計測用マシンのスペックがわからんけど、Cで実装すればとりあえず3位以内になるんじゃなかろうか。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事isucon4の予選に参加してみたはてなの近藤さんの自転車が盗まれたらしい(自転車の盗難対策について)ロードバイク買ったロードバイク買うぞ!Bromptonのフロントにある反射板をはずしてかしこいランプを取り付ける月別アーカイブはてなブログをはじめよう!flytalesさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。