2012-11-01から1ヶ月間の記事一覧

追記:bitを少なめに乱数生成する方法

以下のようにしています。これで結構速くmagic numberが見つかるようになりました。 // 1のビットを少なめに乱数生成 uint64 random() { uint64 v = 0, n = 1; for(int i = 0;i < 64;i++){ if(rand()%1000<150) v += n; n = n << 1; }; return v; };

指手生成速度 core i7 3.2GHz

指手生成祭の後手側で、ビットボード版は300万/秒、switch展開は340万/秒。 ビットボード版はボナンザを参考にした。 Aperyは400万/秒とのことだったので、実は、switch展開板は結構速いことが判明。 ビットボードを使わなくても指手生成は、それなりに速く…

magic number生成プログラム

以下に置きます。飛車だと14bitの完全ハッシュを作らないといけないのだけど、 やみくもにmagic numberを乱数で生成しても、衝突しまくってなかなかできない。 ここらへんんは[2][3]でも苦労しているようでした。 [3]のように乱数生成の際に、1のビットが少…

magic bitboard

例のswitch展開での指手生成もバグがとれて安定してきました。 floodgateにkuma2_testで投入しています。fv.bin使っている割に弱いです。 R2000あるかどうか。 最初から作り直していて、前回と違う個所は、○指手生成一新。手情報もintにした。 ○定跡選択をま…