2017-02-16 9 views
-2

私は乱数の配列を持っており、ループ内で調べている特定の平均に達するまで配列の値を変更し続けたいと思います。乱数を一定の和に達するまで乱数を生成するより良い解決法

部分コード:

番号[]は整数配列と数字がランダム[]ランダム配列

while(avg!=avg(numbers)){ 
    for(...){ 
    numbers[i] = numbersRandom[i].nextInt((max-min)+1)+min; 
    } 
} 
+0

はい、それは非常に遅いです。最後の値を計算する方が良いので、必要な合計が得られます。これははるかに高速にすることができます。平均よりむしろ合計を計算するほうが速く、同じ結果が得られます。 –

+1

ランダム配列を取って、必要な合計に応じて最後の数を手動で変更することをお勧めしますか? – user4655509

+0

質問に問題があった人は、少なくとも私に間違っていることを知らせる礼儀を持っています! – user4655509

答えて

0

  1. が希望平均で配列を記入してくださいです:{1.5,1.5、... 1.5}となる。

  2. ランダム値を選択します。

  3. このランダム値をランダムに選択した配列の要素に追加します。ランダムに選択された異なる要素から同じランダム値を減算します。

  4. アレイ全体が十分にランダムでない場合は、2に戻ります。それ以外の場合は停止します。

この方法では、各繰り返しによってアレイの平均が同じに保たれます。ステップ4ではおそらく標準偏差を確認することができます。

関連する問題