私はランダムに4の値を12の異なる変数に分割するスクリプトを作成しようとしています。私はこれを適切に行う良い方法を考えることができません。私は0.33(4分の1の12)に近づくように数字をランダム化することを考えましたが、それはしばしば最後のいくつかの数字が過小優先順位になることにつながります。誰もこれの前にこのようなことをしようとしたか、これをできるだけランダムで均一に不均一にするための素晴らしいアイデアがありますか?数値をランダムな不等号に分割する
7
A
答えて
17
好きな乱数ジェネレータから12個の乱数を生成する場合は、r1..r12
とします。
これらをすべて追加します。合計額はsum
です。
4
の最初のランダム分数は(r1/sum)*4
です。残りは明白でなければなりません。
8
1より大きい任意の乱数を生成し、必要な合計に再スケーリングした後に生成します。
例:
- 必要な合計:4
- 乱数:1 2 3 4 5 6 7 8 9 10 11 12
- 合計= 78の
- 再スケーリング番号:
1が(1 * 4)/ 78に再スケーリングされたもの
2に再スケーリング(2 * 4)/ 78
...
12(12 * 4)/ 78
2
以下のアルゴリズムに再スケーリングが可能であると仮定すると、均一に分布パーティションを提供連続的な範囲にわたって(または、少なくとも、複製のオッズが無視できるほど十分に多くの可能な値を有する離散的な範囲にわたって)均一に分布した乱数を生成することができる。範囲[0, t]
でk-1
均一に分布値を生成
:
k
値にt
のパーティションを生成する。
これらを並べ替え、先頭に
0
、最後にt
を追加します。隣接する差分をパーティションとして使用します。
関連する問題
- 1. python numpyを不等な部分配列に分割する
- 2. スレッド間で不均等数を分割する
- 3. 均等に小数を分割する
- 4. 番号をランダムに生成された部分に分割する方法
- 5. 不安定(シーク(一見ランダムな)行動)と分割()のpython
- 6. スイングコントロールを均等に分割する
- 7. 配列の等価/不等号
- 8. "割り当てを満たすために等号の右辺からの出力が不十分です。" Matlab
- 9. AppEngine Datastoreの不等号フィルタ
- 10. テキストを一定数の行に均等に分割します
- 11. ランダム番号と数値フィルタがExcelで
- 12. 分割画面(不等間隔のウィンドウで表示)R
- 13. 行列を等しい部分に分割する方法は?
- 14. 9×3 rectを8等分の正方形に分割する
- 15. 番号を乱数の乱数に分割しますか?
- 16. グリッドをランダムなサイズの矩形に分割します
- 17. はランダムにレコードを選択し、(ランダムに分割行)をグループ化する
- 18. クアッドツリーと等価部分に分割する
- 19. C#:ランダムに均等に分布したランダムな範囲を作成するためのアルゴリズム
- 20. その中にランダムな内容のJavascriptを分割
- 21. 番号を分割するR
- 22. R、不明なインデックスでの分割ベクトル
- 23. 均等割り算の天井番号
- 24. パイヤ暗号で2つの数を分割する方法は?
- 25. 各要素に均等に領域を分割する
- 26. スナッピーは分割可能か分割不可ですか?
- 27. オーバーフローで画面を均等に分割する
- 28. php - 時間間隔を等間隔に分割する
- 29. 分割dmpファイルを複数のdmpファイルに分割する
- 30. 不均等な間隔のイベントのベクトルにデータを割り当てる
これは素晴らしかった!どうもありがとう! – Tom
このソリューションでは、論理的に一様に分布する数値の集合は生成されませんが、本当に均一なものを生成できない理由を理解していないため、ほとんどの人が選択するようなソリューションです。 –
@ woodchips:この批判の正体を示すのは役に立ちましたが(それは正しいが)、一様に分散したパーティションを生成する答えを提供することがさらに役立つだろう。私は後者をやろうとしましたが、それも正しいとは確信していません。 – rici