例10の値のランダムなdouble値を作成するメソッドを作成しました。num1、num2、... num10この10個の値の合計は1:num1 + num2 + ... + num10 = 1 My methodフォーラム
Getting N random numbers that the sum is M内のメソッドのようなものです:Java割り当てのヘルプ
private static double[] randSum(int n, double m) {
Random rand = new Random();
double randNums[] = new double[n], sum = 0;
for (int i = 0; i < randNums.length; i++) {
randNums[i] = rand.nextDouble();
sum += randNums[i];
}
for (int i = 0; i < randNums.length; i++) {
randNums[i] /= sum * m;
}
return randNums;
}
しかし、この方法は次のように非常に長い番号を作成します。0.18593711849349975 私にも使用さ恐らくMath.round()メソッドが、この方法で私の番号は、0.0、0.5、0.0です... 私は0.01から0.99または0.1から0.9までの数字が必要です。整数値を使用していた場合、Random.nextInt(0.98)+0.01のような方法でこれを行うことができますが、nextDouble()メソッドはパラメータを受け付けません。どうすればいいですか?私を助けてくれますか?おかげ
私はあなたが再考することをお勧めしたいこの質問のタイトルは、より意味のあるものにするためです。また、変数名のいくつかを再考してください。 'n'と 'm'は読者にはあまり意味がありません。 –