問題タブ [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.

0 投票する
2 に答える
6823 参照

c - C で一様に分布するランダムな実数を生成する

間隔 [0,1] でランダムな実数を生成したいと思います。nたとえば、数値のポインターを設定したいので、 を指定nすると、ランダムに生成された数値が参照されます。

StackOverflow と Google で検索しましたが、それらのほとんどは C++ または整数用です。

回答で提案されたこのコードを試しました:

ただし、値は 0.00000000 しか取得できません。

プログラムを修正するにはどうすればよいですか?

0 投票する
2 に答える
678 参照

random - 現実世界の乱数は一様分布に従うか

一様分布と乱数の概念について混乱しています。乱数は一様分布に従うか、乱数はどの分布にも従わないか?

0 投票する
1 に答える
229 参照

c++ - 各パスでのランダムな一様 int 分布の削減

ブロック サイズが 256 要素のクラスに取り組んでいます。そして、何かを保存する前に add 関数が呼び出されるたびに。[0,255] の範囲で均一なランダムな int を生成したい。私がやりたいのは、この関数が終了する前に、使用された以前の値を追跡することです。これにより、次回関数を使用すると、何かが既にそこに含まれているかどうかを確認する代わりに、一様ランダム int 分布が自動的にそれらの値をスキップします。 .

指定された範囲 [0,255] の間の値を決定できますか? もしそうなら、これはどのように行われますか?

編集

以下のコメントのいくつかを検討した後、彼らは良い点をもたらしました. 私の場合、本当に必要なのは、0 ~ 255 の範囲の 256 個の一意のキー値のセットであり、ランダムにシャッフルまたはスクランブルする必要があります。これをどのように達成しようとするかについて考えてみますが、良い例を喜んで提供してくれる人がいれば、それは受け入れられます。仕事をすることは気にしませんが、乗り越えられないように見える点に到達し、それに時間を費やしすぎると、その点を超えて移動できるようになりたいと思うことがあります.の上。

0 投票する
2 に答える
782 参照

c++ - 「最小から最大」の一様実数分布は、Inf、-Inf、または NaN を生成しますか?

次の方法で浮動小数点値を生成するとします。

NaNInf、またはが返される可能性はあり-Infますか?

0 投票する
0 に答える
344 参照

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 コード (上記の関数):

0 投票する
3 に答える
2402 参照

r - Rの一様分布のランダムサブサンプル

植生指数 (VI) の観測を含む大規模なデータセットがあります。Rを使用して、分布(相対頻度)を均一に保ちながらデータをランダムにサブサンプリングしています(VI範囲全体で観測量が等しい)。私は完全に均等な分布を得ることができませんでした。

例:

0 投票する
2 に答える
3645 参照

swift - Swift - arc4random_uniform をシードしますか? それとも代替?

私が達成しようとしていることを述べることから始めましょう。

  1. 範囲内で一連の数値をランダムに生成する必要があります
  2. それらの数がある程度均一に分布することを望みます
  3. シードが与えられた場合、結果の乱数が常に同じになるように、乱数生成をシードできる必要があります。

drand48()、rand()、arc4random() をかなり試した後、現在、乱数を取得するために rand() を使用し、シードするために srand() を使用することに落ち着きました。これは私がやっていることから単純化された小さな例です:

これは機能します。同じシードが与えられれば、同じ乱数が出てきます。複数の randomNumber 計算を実行すると、複数の異なる乱数が出てきます。srand を介して再シードすると、「ランダム性」が再び開始されます。

唯一の欠点は、rand() が均一に分散されていないことです。実際、ほとんどの場合、ほとんどの場合、直線的に増加する一連の数値になります。

arc4random_uniform はより多くの均一なランダム出力を生成するように思えますが、私の調査では、arc4random をシードすることはできません。これは、arc4random が最初に呼び出されたときにシードされ、外部からシードされるように必ずしも「設計」されているとは限らないためです。

私の質問です。特定のシードに対して同じ出力が得られる srand() / rand() のより良い代替手段はありますが、それらの出力はより均一に分散されていますか?

ありがとう - アダム