0

私は現在Javaを学び、whileループを学んでいます。random()メソッドを使用して乱数を生成するにはどうすればよいですか?また、特定の範囲にのみ収まる値をプログラムに出力させるにはどうすればよいですか?たとえば、Javaが10個の乱数を選択したとすると、0.6から0.8の間の数値のみを表示するようにするにはどうすればよいでしょうか。

 double randomNumber;
    int counter = 0;

    while(counter <= 99)
    {
        randomNumber = Math.random();
        System.out.println(randomNumber);
         counter++;
4

3 に答える 3

4

Math.random()は、0.0 を含む 1.0 を含まない数値を与えるため、他の範囲を取得する従来の方法は、範囲の幅を掛けて、範囲の下限を足すことです。したがって:

Math.random() * 0.2 + 0.6

[0.6、0.8)で何かを与えるでしょう。

于 2012-12-23T01:01:00.597 に答える
3

その範囲の乱数を取得するには:

double r = Math.random(); // -> [0, 1)
r = r * 0.2;              // scale     -> [0, 0.2)
r = r + 0.6;              // translate -> [0.6, 0.8)

(同様の計算を実行して、負の数を作成したり、任意の範囲にマップしたりできます。)

数値がすでにその範囲内にある場合にのみ数値を使用して「何かを行う」には:

double r = Math.random(); // -> [0, 1)
if (r >= 0.6 && r < 0.8) {
    // r -> [0.6, 0.8)
} else {
    // r -> not in above range
}
于 2012-12-23T01:03:21.907 に答える
1

負の数のみが必要なのか、組み合わせが必要なのかわかりません。負の場合のみ、次のように掛け-1.0dます。

double random = Math.random() * -1.0f; // range ]-1, 0]

プラスとマイナスを組み合わせた場合は、次を使用します。

double random = 2.0d * (Math.random() - 0.5d); // range [-1, 1[

2 番目の質問では、単純な if を使用します。

double random = 2.0d * (Math.random() - 0.5d);
if (0.6d < random && random < 0.8d)
{
     System.out.println(random);
}
于 2012-12-23T01:00:39.757 に答える