乱数発生器について。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tk-xleader

乱数発生器について。

#1

投稿記事 by tk-xleader » 18年前

はじめまして、tkmakwins15です。いきなり質問なのですが、
乱数発生器のアルゴリズムについて、教えてください。
C標準ライブラリの rand() は性能が悪いと聞いたので、ほか
のアルゴリズムに付いて詳しく知りたいのです。Cについては
ある程度のプログラムは書けます。環境はVisualStudio 2005
です。

box

Re:乱数発生器について。

#2

投稿記事 by box » 18年前

日本人が開発した「メルセンヌ・ツイスタ」という乱数生成器があります。
私は残念ながら詳しくないので、説明ができません。
「メルセンヌ・ツイスタ」でググってみてください。

tk-xleader

Re:乱数発生器について。

#3

投稿記事 by tk-xleader » 18年前

ありがとうございました。しかし、「メルセンヌ・ツイスタ」は、
ググってもほとんどアルゴリズムに関するページがないのです。
なので、「線形合同法」以外のアルゴリズムでいいのがあれば、
教えてもらえませんか?

Justy

Re:乱数発生器について。

#4

投稿記事 by Justy » 18年前

 メルセンヌツイスタはソース公開されていますし、解説なら
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の短所を
改善していると言われているのでいいのかもしれません。

tk-xleader

Re:乱数発生器について。

#5

投稿記事 by tk-xleader » 18年前

ありがとうございました。いろいろと調べてみます。

閉鎖

“C言語何でも質問掲示板” へ戻る