乱数生成アルゴリズム |
---|
標準ライブラリの乱数の雲 |
---|
乱数の雲とは、乱数の分布の度合いを3次元の分布図で表したものです。
標準ライブラリの乱数の雲をみてみましょう。驚きの結果です。
乱数の雲を生成するプログラム |
---|
以下の様なプログラムで、生成しています。
int i, j; int H = 32767 / height; for( i = 0; i < width; i++ ) { srand( i ); for( j = 0; j < 1000; j++ ) rand(); // 100個捨てる for( j = 0; j < 50; j++ ) { dc.SetPixel( i, rand() / H, RGB( 255 - j * 5, 0, 0 ) ); } } |
あゆしゃの乱数の雲 |
---|
まずは、この雲を見てください。
あゆしゃの乱数生成アルゴリズム |
---|
以下のプログラムで、乱数を生成しています。
XORがいっぱいありますが、全然、難しいことは行っていません。
|
あゆしゃの乱数生成クラス |
---|
arand をクラスにまとめました。ただ、それだけですが。
class CARand { private: UINT r; public: |
int H = ( int )( 0xFFFFFFFFUL / ( UINT )height ); for( i = 0; i < width; i++ ) { CARand ar( ( UINT )i ); for( j = 0; j < 50; j++ ) { dc.SetPixel( i, ar.arand() / H, RGB( 0, 0, 255 - j * 5 ) ); } } |
あゆしゃの乱数生成アルゴリズム
VS
メルセンヌ・ツイスター
|
---|