私はこの方法を使用します:
_def getRandomNumber(int num){
Random random = new Random()
return random.getRandomDigits(num)
}
_
私がそれを呼び出すとき、私はprintln getRandomNumber(4)
と書く
しかし、私はエラーがあります
_No signature of method: Java.util.Random.getRandomDigits() is applicable for argument types: (Java.lang.Integer) values: [4]
_
注:私はこのメソッドを別のgroovyクラスで使用し、エラーなしで適切に動作します
Java.util.Random.getRandomDigits
のようなメソッドはありません。
乱数を取得するには、nextIntを使用します。
return random.nextInt(10 ** num)
また、アプリケーションの起動時にランダムオブジェクトonceを作成する必要があります。
Random random = new Random()
新しい乱数が必要になるたびに、新しいランダムオブジェクトを作成しないでください。これを行うと、ランダム性が破壊されます。
以下を使用して、1から上限までの数値を生成できます。
Math.abs(new Random().nextInt() % [UPPER_LIMIT]) + 1
具体例を次に示します。
例-1〜600の範囲の擬似乱数を生成する:
_Math.abs(new Random().nextInt() % 600) + 1
_
これにより、範囲内の乱数が生成されます。この場合、1-600。値600は、整数の範囲内で必要なものに変更できます。
1に等しくない下限を使用する場合は、次の式を使用できます。
Math.abs(new Random().nextInt() % ([UPPER_LIMIT] - [LOWER_LIMIT])) + [LOWER_LIMIT]
具体例を次に示します。
例-40〜99の範囲の擬似乱数を生成します。
_Math.abs( new Random().nextInt() % (99 - 40) ) + 40
_
これにより、40〜99の範囲内の乱数が生成されます。
一般的に、私は RandomUtils (Apache commons langから)Java.util.Random
'0'を含む範囲で乱数を生成する場合は、次を使用します。'max 'は範囲内の最大数です。
Random Rand = new Random()
random_num = Rand.nextInt(max+1)
たとえば、50〜60の乱数を作成するとします。次のいずれかの方法を使用できます。
new Random().nextInt()%6 +55
new Random()。nextInt()%6は-5〜5の値を返します。55に追加すると、50〜60の値を取得できます
2番目の方法:
Math.abs(new Random().nextInt()%11) +50
Math.abs(new Random()。nextInt()%11)は0〜10の値を作成します。後で50を追加して、50〜60の値を取得できます