1

どちらがよりランダムですか?

rand()

また

rand() + rand()

また

rand() * rand()

どうすればこれを判断できますか?つまり。これは本当に私を困惑させています!それらはすべて等しくランダムであるかもしれないと感じるが、どうして絶対に確信できるのだろうか?!

誰?

4

2 に答える 2

8

「よりランダム」であるという概念は、実際には意味がありません。3つの方法では、乱数の分布が異なります。これはMatlabで説明できます。f最初に、呼び出されたときに10,000個の乱数の配列を提供する関数を定義します。

f = @() rand(10000,1);

次に、3つのメソッドの分布を見てください。

最初の方法でhist(f())は、一様分布が得られます。

ここに画像の説明を入力してください

2番目の方法hist(f() + f())では、中央でピークに達する分布が得られます。

ここに画像の説明を入力してください

3番目の方法hist(f() .* f())では、ゼロに近い数値が発生する可能性が高い分布が得られます。

ここに画像の説明を入力してください

于 2012-06-22T09:13:47.783 に答える
1

エントロピーの量に関しては、私は推測します。

現在持っているよりも多くのエントロピー(ランダム性)が必要な場合は、暗号的に強力なランダムジェネレーターを使用してください。

なぜそれらが比較可能であるか---攻撃者がによって返される次の疑似乱数値を推測できる場合

rand()

彼が次に推測するのはそれほど難しくないでしょう

rand()*rand()

それにもかかわらず、さまざまな分布についての議論は重要で有効です!

于 2012-06-22T09:10:14.087 に答える