乱数再び
ハッカーの楽しみから、nlz関数を作ってみたが、試験に使う乱数が
上手く作れない。標準のrand()関数だと、16bit分しかつくってくれない。
いよいよ温存しておいたboostの出番だな。
#include < iostream >
#include < boost/random.hpp >using namespace std;
using namespace boost;int main(void)
{
minstd_rand gen;
cout << hex;
for(int i=0;i<100;++i){
cout << gen() << endl;
}
return 0;
}
こんな感じで簡単にboost使えた。ていうか、portsで入れたらライブラリのパスとか
勝手に設定されている。ビバports!
乱数が出てきて自分の愚かさに気がつく。
4c63e5c
40886c6c
3bd43f64
4a1d30fe
5649530f
bf4e87d
889bb70
6a960023
31e46490
186e35ef
152bc87e
7ab1a591
7ed2acbc
e8947d7
6f711a82
4fa5eac8
56197b0c
4e990a89
4b39f24f
1350ccf2
20a44fa2
例えば32ビットの最上位ビットを調べるのに欲しいデータってのは、
0x00001234とか、0x0001010Fとか、0x000000032とか、もっと上位に
0が集まってくれないと意味がない。
最上位の4bitが0になる可能性ってその時点で1/16、00が続くとなると
1/256か。
バイト毎に乱数を作って3/4くらいでそのバイトを0にするとか、なんかしないと
乱数の意味がないな。
ランダム検証の難しさを身にしみた一日でした。
The comments to this entry are closed.
Comments