Visual Basic.netの乱数生成の仕組みについて教えてください。パチンコのシミュレーションをしていますが、1日分で4000回くらい乱数を発生させます。それを何万日分か続けてシミュレーションするのですが、途中でループしていないか心配です。1日分ごとにrandomizeしていますが、システムタイマーからのシード値なるものが、どれくらいあるのかも分かりません。乱数の仕組みや良い対処方法を教えてください。初心者です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/22 16:18:33
  • 終了:--

回答(3件)

id:Beth No.1

Beth回答回数94ベストアンサー獲得回数12005/01/22 16:23:07

ポイント34pt

http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html

Mersenne Twister: A random number generator (since 1997/10)

乱数生成だったら、メルセンヌ・ツイスター法がおすすめです。

id:yama100k

ありがとうございます。勉強してみます。

2005/01/22 21:09:09
id:shampoohat No.2

shampoohat回答回数347ベストアンサー獲得回数02005/01/22 21:06:48

ポイント33pt

http://www.kinyuu.co.jp/report/rep000303.htm

乱数の基礎(1) 乱数の概要

乱数と言っても決定論的に数列が出てるだけです。

これとかを使えば、品質は上がります。VBへの書き直しとかは大丈夫ですよね。

対象物(パチンコ)は良く知らないんですが、スロットなんかもタイミングをシードにしてるそうなんで、乱数自体は粗末でも、明らかなループが起きないようになっています。

id:yama100k

ありがとうございます。勉強してみます。

2005/01/23 12:10:25
id:bake_3572 No.3

bake_3572回答回数19ベストアンサー獲得回数02005/01/23 16:04:00

ポイント33pt

URLはダミーです。

Visual Basic.net のクラスライブラリ内の乱数発生関数は実装依存でしょうから、自分で実装するのが、お勧めですね。

既に回答に出ているMT法ですが、乱数の周期が非常に長いので、ループはまずありえません。そこは安心してください。

あと、シード値はなるべくランダムな値を使うことです。キー入力のタイミングやその差分などを使えば、まず再現不可能なシード値を作ることも可能です。

id:yama100k

ありがとうございます。どうにか使い方も分かりましたので、安心してMT方を使いたいと思います。回答いただきました3人の方にお礼申し上げます。

2005/01/24 18:05:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません