私は、-10 から 10 までのランダムな double を生成しようとしている Java 初心者です。私はintで次のことを行うことを知っています:
Random r = new Random();
int i = -10 + r.nextInt(21);
ただし、ダブルでは、これは機能しません。
Random r = new Random();
double i = -10 + r.nextDouble(21);
ダブルスの場合の対処法を誰か教えてください。
これを試して:
Random r = new Random();
double d = -10.0 + r.nextDouble() * 20.0;
注: 20.0 である必要があります (21.0 ではありません)。
これを使用して、指定された範囲で値を生成してみてください。
Random random = new Random();
double value = min + (max - min) * random.nextDouble();
またはこれを使用してみてください:
public double doubleRandomInclusive(double max, double min) {
double r = Math.random();
if (r < 0.5) {
return ((1 - Math.random()) * (max - min) + min);
}
return (Math.random() * (max - min) + min);
}
この乱数ジェネレーターのシーケンスから、0.0 から 1.0 の間で均一に分散された次の疑似乱数の double 値を返します。
nextDouble はパラメーターを取りません。範囲が何であれ、それを掛けるだけです。またはより一般的に:
minimum + (maximum - minimum) * r.nextDouble();