範囲内のランダムについて別の質問があることは知っていますが、それらの回答のどれも私がやろうとしていることを達成していません。実際、彼らには私と同じエラーがあります。範囲でランダムを生成するこの単純な関数を作成しました。
Random m_random = new Random();
...
public int RandomWithRange(int min, int max) {
return m_random.nextInt(max - min + 1) + min;
}
範囲が Integer.MAX_VALUE より大きい場合、IllegalArgumentException がスローされます: n は正でなければなりません。オーバーフローして負の数になることがわかっています。私の質問は、それをどのように処理するかです。
範囲の例;
- [0, Integer.MAX_VALUE]
- [整数.MIN_VALUE、整数.MAX_VALUE]
- [-100、Integer.MAX_VALUE]
注: min と max は包括的でなければなりません。