私はJavaの完全な初心者なので、ごめんなさいおそらく非常に愚かな質問です。これは、2つの乱数を推測するためのプログラムです。 Math.randomの後に「*(MAX + 1-MIN)))+ MIN;」が続くのはなぜですか。また、Math.randomは1から3までの数値を生成し、それ以上の数値を生成しないことをどのように知っていますか?
Scanner scan = new Scanner(System.in);
final int MIN = 1, MAX = 3;
int firstAnswer = ((int)(Math.random() * (MAX + 1 - MIN))) + MIN;
int secondAnswer = ((int)(Math.random() * (MAX + 1 - MIN))) + MIN;
int firstGuess, secondGuess;
ご協力いただきありがとうございます!!
回答:
回答№1は5Math.random()
〜を生成する double
範囲[0、1)。 (3 + 1-1)を掛けてintにキャストすると、範囲[0、3)の数値が得られます。番号が int
、それは範囲[0、2]にあることを意味します。1と合計すると、範囲[1、3]の整数、つまり1、2、または3が得られます。
回答№2については2
Math.random()
〜を生成する double
0(包括的)から1(排他的)までの数値。
乗算 (MAX + 1 - MIN)
、にキャスト int
の追加 MIN
生成されたものを変換する double
〜に int
間の値 1
そして 3
.