はじめまして、tkmakwins15です。いきなり質問なのですが、
乱数発生器のアルゴリズムについて、教えてください。
C標準ライブラリの rand() は性能が悪いと聞いたので、ほか
のアルゴリズムに付いて詳しく知りたいのです。Cについては
ある程度のプログラムは書けます。環境はVisualStudio 2005
です。
乱数発生器について。
Re:乱数発生器について。
日本人が開発した「メルセンヌ・ツイスタ」という乱数生成器があります。
私は残念ながら詳しくないので、説明ができません。
「メルセンヌ・ツイスタ」でググってみてください。
私は残念ながら詳しくないので、説明ができません。
「メルセンヌ・ツイスタ」でググってみてください。
Re:乱数発生器について。
ありがとうございました。しかし、「メルセンヌ・ツイスタ」は、
ググってもほとんどアルゴリズムに関するページがないのです。
なので、「線形合同法」以外のアルゴリズムでいいのがあれば、
教えてもらえませんか?
ググってもほとんどアルゴリズムに関するページがないのです。
なので、「線形合同法」以外のアルゴリズムでいいのがあれば、
教えてもらえませんか?
Re:乱数発生器について。
メルセンヌツイスタはソース公開されていますし、解説なら
Cマガジン 2004年10月号の特集記事に開発者である松本眞氏ご本人が
アルゴリズムや高速化手法などについて書かれていますので、
それを参考にしてみてください。
C MAGAZINE 2004年10月号
http://www.cmagazine.jp/contents/200410.html
乱数の種類はこれ以外だと
・ 乗算合同法
・ M系列
・ http://www.iro.umontreal.ca/~lecuyer/my ... ellrng.pdf
・ http://www.jstatsoft.org/v08/i14/xorshift.pdf
・ http://www.agner.org/random/theory/chaosran.pdf
・ Lagged Fibonacci
・ Windowsの高分解能パフォーマンスカウンタを利用したhttp://www.interq.or.jp/snake/totugeki/hdrand.htm
・ linuxの /dev/random と /dev/urandom
とかとか他にも多数ありますが、簡単なものもあれば複雑なものもあって
なかなか掲示板ではカバーしきれないです。
私も詳しくないので解説はできませんが、どれがいいかと訊かれると
MTがだめとなると(用途にもよりますが)Wellなんて MTの短所を
改善していると言われているのでいいのかもしれません。
Cマガジン 2004年10月号の特集記事に開発者である松本眞氏ご本人が
アルゴリズムや高速化手法などについて書かれていますので、
それを参考にしてみてください。
C MAGAZINE 2004年10月号
http://www.cmagazine.jp/contents/200410.html
乱数の種類はこれ以外だと
・ 乗算合同法
・ M系列
・ http://www.iro.umontreal.ca/~lecuyer/my ... ellrng.pdf
・ http://www.jstatsoft.org/v08/i14/xorshift.pdf
・ http://www.agner.org/random/theory/chaosran.pdf
・ Lagged Fibonacci
・ Windowsの高分解能パフォーマンスカウンタを利用したhttp://www.interq.or.jp/snake/totugeki/hdrand.htm
・ linuxの /dev/random と /dev/urandom
とかとか他にも多数ありますが、簡単なものもあれば複雑なものもあって
なかなか掲示板ではカバーしきれないです。
私も詳しくないので解説はできませんが、どれがいいかと訊かれると
MTがだめとなると(用途にもよりますが)Wellなんて MTの短所を
改善していると言われているのでいいのかもしれません。