追記: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; };
以下のようにしています。これで結構速く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; };