2014年5月9日金曜日

C言語のrand()の落とし穴

C言語のrand()は、0以上RAND_MAX以下のint型の値を返す。なので、そもそも負の値を返さないrand()の戻り値は、MSBが絶対に立たない。rand()が質の悪い乱数であることは承知の上で、お手軽に32ビットの乱数を生成してテストケースをカバーするつもりが、実は31ビットの乱数だった…。

C++11のrandomを使おう。

0 件のコメント:

コメントを投稿