人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: yama100k
●カテゴリ:コンピュータ
✍キーワード:.NET Visual Basic システム シミュレーション タイマー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Beth
●34ポイント

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

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

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

◎質問者からの返答

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


2 ● shampoohat
●33ポイント

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

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

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

http://www001.upp.so-net.ne.jp/isaku/rand.html

良い乱数・悪い乱数

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

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

◎質問者からの返答

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


3 ● bake_3572
●33ポイント

http://www.hatena.ne.jp/

はてな

URLはダミーです。

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

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ