問題タブ [uniform-distribution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C で一様に分布するランダムな実数を生成する
間隔 [0,1] でランダムな実数を生成したいと思います。n
たとえば、数値のポインターを設定したいので、 を指定n
すると、ランダムに生成された数値が参照されます。
StackOverflow と Google で検索しましたが、それらのほとんどは C++ または整数用です。
回答で提案されたこのコードを試しました:
ただし、値は 0.00000000 しか取得できません。
プログラムを修正するにはどうすればよいですか?
random - 現実世界の乱数は一様分布に従うか
一様分布と乱数の概念について混乱しています。乱数は一様分布に従うか、乱数はどの分布にも従わないか?
c++ - 各パスでのランダムな一様 int 分布の削減
ブロック サイズが 256 要素のクラスに取り組んでいます。そして、何かを保存する前に add 関数が呼び出されるたびに。[0,255] の範囲で均一なランダムな int を生成したい。私がやりたいのは、この関数が終了する前に、使用された以前の値を追跡することです。これにより、次回関数を使用すると、何かが既にそこに含まれているかどうかを確認する代わりに、一様ランダム int 分布が自動的にそれらの値をスキップします。 .
指定された範囲 [0,255] の間の値を決定できますか? もしそうなら、これはどのように行われますか?
編集
以下のコメントのいくつかを検討した後、彼らは良い点をもたらしました. 私の場合、本当に必要なのは、0 ~ 255 の範囲の 256 個の一意のキー値のセットであり、ランダムにシャッフルまたはスクランブルする必要があります。これをどのように達成しようとするかについて考えてみますが、良い例を喜んで提供してくれる人がいれば、それは受け入れられます。仕事をすることは気にしませんが、乗り越えられないように見える点に到達し、それに時間を費やしすぎると、その点を超えて移動できるようになりたいと思うことがあります.の上。
c++ - 「最小から最大」の一様実数分布は、Inf、-Inf、または NaN を生成しますか?
次の方法で浮動小数点値を生成するとします。
NaN
、Inf
、またはが返される可能性はあり-Inf
ますか?
matlab - なぜMatlabのunifrnd(a,b)はとても遅いのですか?
私は Matlab と Julia の間で簡単な速度比較を行っていました (tic、toc コマンドを使用して) 拒否サンプリングで Gibbs サンプラーを実行していました。Matlab では、2 つの異なるバージョンのコードを実行しました。1 つは組み込みの unifrnd(a,b) を使用し、もう 1 つは次の関数を呼び出して間隔 (a,b) で一様乱数を描画していました。
Juliaコードで上記と同じ関数を使用しました。
1000000 回の反復でコードを実行した結果は次のとおりです。
ケース 1: unifrnd(a,b) を使用した Matlab:
x_bar = 1.0944
y_バー = 1.1426
経過時間は 255.201619 秒です。
ケース 2: rand_uniform(a,b) を呼び出す Matlab (上記の関数):
x_bar =1.0947
y_bar =1.1429
経過時間は 38.704601 秒です。
ケース 3: Julia が rand_uniform(a,b) を呼び出す (上記の関数):
x_bar = 1.0951446303536603
y_bar = 1.142634615899686
経過時間: 3.563854193 秒
明らかに unifrnd(a,b) を使用すると、Matlab コードの速度が大幅に低下しましたが、問題はその理由です。密度は、社会科学者のための応用ベイジアン統計と推定の紹介の例の 1 つから取得されます。誰かが理論上の平均に興味がある場合は、mu_x = 1.095 で、mu_y = 1.143 です。
ケース 1: 組み込みの unifrnd(a,b) を使用する Matlab コードは次のとおりです。
ケース 2: rand_uniform(a,b) を呼び出す Matlab コード (上記の関数):
ケース 3: rand_uniform(a,b) を呼び出す Julia コード (上記の関数):
r - Rの一様分布のランダムサブサンプル
植生指数 (VI) の観測を含む大規模なデータセットがあります。Rを使用して、分布(相対頻度)を均一に保ちながらデータをランダムにサブサンプリングしています(VI範囲全体で観測量が等しい)。私は完全に均等な分布を得ることができませんでした。
例:
swift - Swift - arc4random_uniform をシードしますか? それとも代替?
私が達成しようとしていることを述べることから始めましょう。
- 範囲内で一連の数値をランダムに生成する必要があります
- それらの数がある程度均一に分布することを望みます
- シードが与えられた場合、結果の乱数が常に同じになるように、乱数生成をシードできる必要があります。
drand48()、rand()、arc4random() をかなり試した後、現在、乱数を取得するために rand() を使用し、シードするために srand() を使用することに落ち着きました。これは私がやっていることから単純化された小さな例です:
これは機能します。同じシードが与えられれば、同じ乱数が出てきます。複数の randomNumber 計算を実行すると、複数の異なる乱数が出てきます。srand を介して再シードすると、「ランダム性」が再び開始されます。
唯一の欠点は、rand() が均一に分散されていないことです。実際、ほとんどの場合、ほとんどの場合、直線的に増加する一連の数値になります。
arc4random_uniform はより多くの均一なランダム出力を生成するように思えますが、私の調査では、arc4random をシードすることはできません。これは、arc4random が最初に呼び出されたときにシードされ、外部からシードされるように必ずしも「設計」されているとは限らないためです。
私の質問です。特定のシードに対して同じ出力が得られる srand() / rand() のより良い代替手段はありますが、それらの出力はより均一に分散されていますか?
ありがとう - アダム