読者です 読者をやめる 読者になる 読者になる

minstd_randの名前

C++

C++の標準ライブラリとBoostには、minstd_randという疑似乱数生成エンジンがあって、以下のように線形合同法エンジンのパラメータ設定済みtypedefとなっています。

typedef linear_congruential_engine< uint32_t, 48271, 0, 2147483647 > minstd_rand;

私は以前からこの名前に疑問を持っていました。
「なんでminstd_randという名前なんだろう?標準のrand()関数が線形合同法だという意味だろうか?」(※rand()が線形合同法だという規定はない)


調べてみたら、MINSTD (good minimal standard)という疑似乱数生成アルゴリズムの名前だそうです。
MINSTD - Classical LCGs