私は、Javaの設計者は、このような乱数を返すためにjava.util.Randomのオブジェクトを設計しなかった理由がわからない:java.util.Randomの範囲を指定する方法は?
rand.nextInt(minValue, maxValue);
私はこれまで最小値と最大値を渡す方法を理解していません関数。私はこれがお勧め見てきました:
random.nextInt(max + 1 - (min)) + min
それが何を意味するのでしょうか?私は間-1と1の値を生成したい場合、たとえば、
random.nextInt(FULL_RANGE + 1) + START_OF_RANGE
含めて、私はそれを行う方法このです:それどういう意味
int oneOfThreeChoices = rand.nextInt(1 + 1 + 1) - 1;
「その意味は何ですか?」:「最大 - 最小+1」は範囲のサイズです。例えば、[1、4]の範囲の値が必要な場合は、4つの異なる値(1,2,3,4)が必要です。つまり、 '4 - 1 + 1'です。今度はnextIntへの引数が排他的なので、4を渡したいと思います。これは{0,1,2,3}の値を取得しますので、 {1、2、3、4}の値を得る。 – yshavit
改造者によってリンクされている答えははるかに複雑な質問です。一番の答えは無関係です。それはどのように役立つのですか?それは私を助けません。 –
どのように関係がありませんか?あなたが知る限り、あなたの質問は基本的に "どのように私は与えられた最小/最大範囲でランダムなintを生成するのですか?"それがあなたの質問であれば、リンクされた複写はそれに答えます、そして、私のコメントはそれを例で少し説明します。それはあなたの質問ではない、何ですか? – yshavit