タグ付けされた質問 「random-number-generator」

6
なぜ乱数ジェネレーターを結合しないのですか?
擬似乱数ジェネレーターが使用される多くのアプリケーションがあります。したがって、人々は、それが欠陥であると後で見つけるためだけに素晴らしいと思うものを実装します。最近、Javascript乱数ジェネレーターでこのようなことが起こりました。RandUもずっと以前です。ツイスターのようなもののための不適切な初期シードの問題もあります。 通常のxor演算子で2つ以上のジェネレーターファミリーを組み合わせた例は見つかりません。java.SecureRandomやTwister実装などを実行するのに十分なコンピューター能力がある場合、なぜ人々はそれらを結合しないのですか?ISAAC xor XORShift xor RandUはかなり良い例であり、単一のジェネレーターの弱点が他のジェネレーターによって緩和されていることがわかります。また、組み込みアルゴリズムはまったく異なるため、数値をより高い次元に分配するのにも役立ちます。それらを組み合わせてはならないという基本原則はありますか? 真の乱数ジェネレーターを構築する場合、2つ以上のエントロピーのソースを組み合わせることをお勧めします。私の例は違いますか? 同じファミリに属する​​複数の線形フィードバックシフトレジスタが連携して動作する一般的な例を除外しています。

4
シンプレックスからの均一なサンプリング
私は、N個の乱数の配列を生成するアルゴリズムを探しています。N個の数字の合計は1で、すべての数字は0と1の範囲内にあります。たとえば、N = 3、ランダムポイント(x、y、 z)三角形内にある必要があります: x + y + z = 1 0 < x < 1 0 < y < 1 0 < z < 1 理想的には、エリア内の各ポイントに等しい確率が必要です。難しすぎる場合は、要件を削除できます。ありがとう。

11
罪の引用におけるフォン・ノイマンのランダム性はもはや適用できませんか?
ある人は次のように言った: 決定論的な手段で乱数を生成しようとする人は、もちろん罪の状態に住んでいます。 これは常に、コンピューターだけでは真の乱数を生成できないことを意味します。そして彼は、コンピューターが単一のIntel 8080マイクロプロセッサーと同等のサイズ(約6000バルブ)だったと言いました。コンピューターはより複雑になり、フォン・フォン・ノイマンの声明はもはや真実ではないと思う。実装されたソフトウェアのみのアルゴリズムは不可能であることを考慮してください。これらは物理ハードウェア上で実行されます。真の乱数ジェネレーターとそのエントロピーソースもハードウェアで構成されています。 このJavaフラグメントはループに入れられます。 file.writeByte((byte) (System.nanoTime() & 0xff)); 画像として表したデータファイルを作成できます。 構造を見ることができますが、同様に多くのランダム性があります。興味深いのは、このPNGファイルのサイズは232KBですが、250,000のグレースケールピクセルが含まれていることです。PNG圧縮レベルは最大でした。つまり、圧縮率は7%だけです。かなり非圧縮性。また興味深いのは、ファイルが一意であることです。このファイルのすべての世代はわずかに異なるパターンであり、圧縮率は約7%です。 私の主張にとって重要であるため、これを強調します。これはバイトあたり約7ビットのエントロピーです。もちろん、より強力な圧縮アルゴリズムを使用すると削減されます。ただし、0ビット/バイトに近い値に減らさないでください。上記の画像を撮影し、そのカラーマップをランダムな画像に置き換えることで、より良い印象を得ることができます。 構造のほとんど(上半分)は、類似しているがわずかに異なる値のシーケンスであるため、消えます。これは、マルチテイキングオペレーティングシステムでJavaプログラムを実行するだけで作成される真のエントロピーソースですか?一様に分布した乱数ジェネレータではなく、1つのエントロピーソースですか?たまたまPCである物理ハードウェアで実行されるソフトウェアで構築されたエントロピーソース。 補足 すべてに共通の固定パターンなしですべての画像が新鮮なエントロピーを生成することを確認するために、10個の連続した画像が生成されました。次に、これらを連結し、私がコンパイルできる最強のアーカイバ(paq8px)で圧縮しました。このプロセスは、変更/エントロピーのみを残す自動相関を含む、すべての一般的なデータを削除します。 連結されたファイルは〜66%に圧縮されており、エントロピー率は〜5.3ビット/バイトまたは10.5Mbits / imageになります。驚くべき量のエントロピー⌣⌣ \smile 補足2 圧縮テストの方法論によるエントロピーに欠陥があるという否定的なコメントがあり、緩やかな上限推定値を示しているだけです。NISTの公式暗号エントロピー評価テストSP800-90B_EntropyAssessmentを使用して、連結ファイルを実行しました。これは、非IIDエントロピー測定の場合と同じくらい良好です。これはレポートです(この質問は長くなっていますが、問題は複雑です): Running non-IID tests... Entropic statistic estimates: Most Common Value Estimate = 7.88411 Collision Test Estimate = 6.44961 Markov Test Estimate = 5.61735 Compression Test Estimate = 6.65691 t-Tuple Test …

9
コインを使用して均一に分布した乱数を生成する
コインが1つあります。何度でも反転できます。 ような乱数を生成します。ここで、です。rrra≤r&lt;ba≤r&lt;ba \leq r < br,a,b∈Z+r,a,b∈Z+r,a,b\in \mathbb{Z}^+ 数字の分布は均一でなければなりません。 あれば簡単です:b−a=2nb−a=2nb -a = 2^n r = a + binary2dec(flip n times write 0 for heads and 1 for tails) どのような場合?b−a≠2nb−a≠2nb-a \neq 2^n

6
πやeなどの無理数を使用して乱数を生成できますか?
、、およびような無理数には、小数点の後に一意の非反復シーケンスがあります。このような数値から番目の数字を抽出し(はメソッドが呼び出される回数)、数字をそのまま使用して数字を作成する場合、完全な乱数ジェネレーターを取得する必要はありませんか?たとえば、、および場合、最初の数値は123、2番目の数値は471、次の数値は184などです。ππ\pieee2–√2\sqrt{2}nnnnnn2–√2\sqrt{2}eeeππ\pi

3
乱数の真に均一な分布を得る唯一の方法は、拒否サンプリングですか?
一様分布の範囲数値を出力するランダムジェネレーターがあり、一様分布の範囲乱数を生成する必要があるとし ます。[ 0 .. N − 1 ][0..R−1][0..R−1][0..R-1][0..N−1][0..N−1][0..N-1] 仮定と割り切れない、取得するために、真に均一な分布、我々が使用することができます 棄却サンプリング方法を:N RN&lt;RN&lt;RN < RNNNRRR がような最大の整数である場合k N &lt; RkkkkN&lt;RkN&lt;Rk N < R で乱数を選択し[ 0 .. R − 1 ]rrr[0..R−1][0..R−1][0..R-1] 場合、出力R \ MOD Nが、そうでない場合は、他の乱数R」、R」にしようと、...を維持する条件が満たされるまでr&lt;kNr&lt;kNr < k NrmodNrmodNr \mod N 真に均一な離散分布を得るには、拒絶サンプリングが唯一の方法ですか? 答えが「はい」の場合、なぜですか? 注意:もしN&gt;RN&gt;RN > R考え同じである:乱数発生r′r′r'で[0..Rm−1],Rm&gt;=N[0..Rm−1],Rm&gt;=N[0..R^m-1], R^m >= N、例えばr′=R(...R(Rr1+r2)...)+rmr′=R(...R(Rr1+r2)...)+rmr' = R(...R(R r_1 + r_2)...)+r_mここで、ririr_iは[0..R-1]の範囲の乱数[0..R−1][0..R−1][0..R-1]


4
偏りのあるダイで公平なダイをシミュレートする
バイアスされたNNNダイを考えると、範囲乱数をどのよう[1,N][1,N][1,N]に均一に生成できますか?ダイス面の確率分布は不明です。既知のことは、各面がゼロ以外の確率を持ち、すべてのスローで確率分布が同じであることだけです(特に、スローは独立しています)。これは、不公平なダイによる公正な結果の明白な一般化です。 これをコンピューターサイエンスの用語で言えば、p i = P (D (k )= i )が非ゼロでkに依存しないようなダイスロールを表すオラクルがあります。私たちは、決定論的アルゴリズムを探しているAによってパラメータ化されたD(すなわちAがへの呼び出しを行うことがDを)そのようなものがあることP (Aは、()= Iを)= 1 /D:N→[1,N]D:N→[1,N]D : \mathbb{N} \to [1,N]pi=P(D(k)=i)pi=P(D(k)=i)p_i = P(D(k)=i)kkkAAADDDAAADDDP(A()=i)=1/NP(A()=i)=1/NP(A()=i) = 1/N。アルゴリズムは確率1で終了する必要があります。つまり、AAAが Dを回以上nnn呼び出す確率は、 n → ∞として 0に収束する必要があります。DDD000n→∞n→∞n\to\infty 以下のためにN=2N=2N=2(硬貨から公正なコインがコインバイアスと反転シミュレート)、周知のアルゴリズムが存在します。 2回のスローが異なる結果((頭、尾)または(尾、頭))になるまで、「2回反転」を繰り返します。すなわち、ループのためにk=0..∞k=0..∞k = 0..\inftyまで、D(2k+1)≠D(2k)D(2k+1)≠D(2k)D(2k+1) \ne D(2k) フリップの最後のペアが(heads、tails)の場合は0を返し、それが(tails、heads)の場合は1を返します。つまり、返します。D(2k)D(2k)D(2k)ここで、kkkはループが終了したインデックスです。 偏りのあるダイから偏りのないダイを作成する簡単な方法は、コインフリップの偏りのない方法を使用して公平なコインを作成し、シーケンスの偏りのないように、リジェクションサンプリングで公平なダイを作成します。しかし、これは最適です(確率分布の一般的な値に対して)? 具体的には、私の質問は次のとおりです。オラクルへの呼び出しの最小予想数を必要とするアルゴリズムは何ですか?到達可能な期待値のセットが開いている場合、下限とは何か、この下限に向かって収束するアルゴリズムのクラスは何ですか? 場合にはアルゴリズムの異なるファミリーは、異なる確率分布に最適な、ほとんど-公正サイコロ上のletの焦点である:私は、アルゴリズムやアルゴリズムの家族のようディストリビューションのための最適なものを探しています∀i,∣∣pi−1/N∣∣&lt;ϵ∀i,|pi−1/N|&lt;ϵ\forall i, \bigl|p_i - 1/N\bigr| \lt \epsilonいくつかのためのϵ&gt;0ϵ&gt;0\epsilon \gt 0。

4
特定の乱数ジェネレータを使用して1〜100を印刷する最も効率的なアルゴリズム
RandNum501〜50の範囲で一様にランダムな整数を生成する乱数ジェネレーターが提供されます。この乱数ジェネレータのみを使用して、1から100までのすべての整数をランダムな順序で生成および出力できます。すべての数は正確に1度来る必要があり、任意の場所で任意の数が発生する確率は等しくなければなりません。 これのための最も効率的なアルゴリズムは何ですか?

3
ポリゴンのランダムサンプリング
ポリゴン内の一様にランダムなポイントをサンプリングしたい... 多数をサンプリングする場合、同じ面積の場合、2つの地域に分類される可能性が等しくなります。 [0,1]の2つの乱数を座標として取るので、正方形の場合、これは非常に簡単です。 私が持っている形状は正多角形ですが、どの多角形でも機能したいのですが。 /programming/3058150/how-to-find-a-random-point-in-a-quadrangle

3
高品質の疑似ランダムジェネレーターは何ですか?
このSOの質問に対するこの回答を読む:なぜ乱数ジェネレーターを組み合わせないのですか?、それは話します 非常に高品質のPRNG(疑似乱数ジェネレーター) だから何が高品質のPRNGを構成するのか不思議に思いますが、「よりランダム」であるとまとめることができると思いますが、 質問1:PRNGのどの品質を使用して、「ランダム」または「良い」かを説明しますか? 質問2:「品質が悪い」PRNGがある場合、品質を向上させる方法はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.