初めてここでStackoverflow。誰かがアルゴリズムの検索で私を助けてくれることを願っています。与えられた範囲でN個の乱数を生成し、合計の合計を計算する
指定された範囲でN個の乱数を生成する必要があります。例えば
:11
範囲にまとめるGeneratare 3つの番号:3 5〜8
- 値及び7.
このサンプルの生成番号は、2、5、4です。
私はすでにたくさんの検索をして、私が必要とする解決法を見つけることができませんでした。 generate random numbers of which the sum is constant しかし、私はそれは範囲で成し遂げるcouldntの:
このような一定の合計unsing剰余のN番号などを生成することが可能です。
またはN個の乱数を生成してそれらを合計し、次に乱数で定数和を除算した後、各乱数にその商であるas proposed hereを掛けます。
主な問題は、私のランダムな値にはそれぞれ異なる範囲があり、範囲に均等に分散される値が必要であるということです(これらの値は最小/最大で発生しません。 min/maxより小さい/大きい値をカットオフ)。
私はまた、乱数(その例では値1,2または3)をとり、その範囲内の値を生成します(min/maxまたはminと残りの合計私の与えられた合計の数を引くこと、そしてすべてが分配されるまでそれを保つこと。しかし、それはひどく非効率的です。アルゴリズムの実行時間が固定される方法を実際に使用することができます。
私はJavaで実行しようとしています。しかし、誰かが既に解決策を用意している場合を除いて、Infoはそのimportendではありません。私が必要とするのは、アルゴリズムの記述かアイデアです。
不可能です。彼らがあなたの要件を満たしていれば、彼らは本当にランダムではありません。 –
@HotLicks - 私は不規則であるかもしれません。乱数を生成することはできませんが、必要な無作為数の自由度は低いです。私はこの主張が「範囲[0,10]の乱数を生成することができない - 本当のランダム化が不可能になるため」と同じであることがわかります。 – amit
@amit - 最初の2つの数字を選んだら、3番目の数字はランダムではありません。 –