2012-04-09 6 views
1

StackOverflowがこの質問をするのに適しているかどうか分かりません。なぜなら、この質問は半プログラミングと半学数学だからです。私の質問がばかだと本当に残念です^^^いつ乱数発生器でループを停止するのですか?

私は "Monte Carlo Methods"の本を使ってモンテカルロシミュレーションについて学んでいます。最初に私が学ばなければならないことの1つは、乱数ジェネレータについてです。 1.初期化:Sに分布μからシードS0を描画する。t = 1に設定する。 2.遷移:St = f(St-1)に設定する。
3.出力:Ut = g(St)を設定します。
4. tをt = t + 1に設定してステップ2に戻ります。

(μは状態Sの有限集合上の確率分布であり、入力はS0であり、それを出力Utとする乱数)

理解しにくいですが、ここでの問題は、繰り返し回数にあるランダムな要素は見られません。どのようにしてRNGのループを停止するかを決めることができますか?私が読んだRNGを実装するすべての例は、100回のループであり、特定のシードに対して同じ値を返します。ランダムではありません> _ <

私はここで何が欠けているのか説明できますか?どんな助けもありがとう。ありがとう皆様

+0

1/2-プログラミング+ 1/2-数学= 1コンピュータサイエンス;それは確かにここで受け入れられる。 –

答えて

2

特殊なハードウェアなしで、コンピュータ上で乱数の正しいシーケンスを取得することはできません。 (特殊なハードウェアは、ランダム性を提供するために物理学を使ってサイコロの最初のロールに相当するものを実行し、電子ダイオードはしばしば一定温度で特殊ダイオードの電子ノイズを使用し、他は放射能減衰イベントを使用する)。

特別なハードウェアあなたが生成することができるのは、あなたが観察したように、常に同じ初期シードに対して同じシーケンスの数字を生成する疑似乱数です。シンプルなアプリケーションでは、起動時から最初のシードを生成することができます。このシードは効果的にランダムです。

「単純なアプリケーション」と言えば、暗号化を除いてです。(だけでなく、それが、特にそれ。)時には

+0

あなたの明確な答えをありがとう –

1

あなたはシミュレーションをデバッグしようとしているとき、あなたは実際にあなたが特異的に開始するためのストリームを送っかもしれないのでは「ランダム」の数字の再現性のストリームを持つようにしたいです特定の種子。答えCreating a facet_wrap plot with ggplot2 with different annotations in each plot RCSにおける例えば

は、実際の質問に答える方法を実証することに行く前にRコード

set.seed(1) 
df <- data.frame(x=rnorm(300), y=rnorm(300), cl=gl(3,100)) # create test data 

を使用して、データの再現性セットを作成することによって、答えを開始します。