JAvaベース-Randomの乱数の使用
6148 ワード
Javaで乱数を生成する方法
多くの場合、ランダム数が必要です.特にテストをするときです.Javaで乱数を生成するにはいくつかの方法があります
Java.util.UUID-一意の文字列を生成
UUIDクラスで一意の文字列を生成することができ、グローバルで一意であり、すべてのコンピュータで生成される文字列は異なる.使用方法は次のとおりです.
Math.random()
Math.random()法により[0,1]区間におけるdoubleタイプの数字を生成することができ、0でも1未満でもよい.その他の一般的な使用方法は以下の通りである.
Math.random()のソースコードに入ると、その具体的な使用は、呼び出されたRandomのnextDouble()メソッドです.
Randomクラス
Randomクラスはランダムな数を生成し、その主な方法は以下の通りである.
方法
意味
public Random()
構築方法
public Random(long var1)
乱数のシードを設定する方法
public synchronized void setSeed(long var1)
乱数のシードを設定
public void nextBytes(byte[] var1)
ランダムなバイト数を生成し、パラメータvar 1が受信する.
public int nextInt()
整数を取得します.
public int nextInt(int var1)
0-var 1範囲のランダム数を取得
public long nextLong()
Long型の乱数を取得
public boolean nextBoolean()
booleanタイプの乱数を取得
public float nextFloat()
floatタイプの乱数を返します
public double nextDouble()
Doubleタイプの乱数を取得し、[0,1]
public synchronized double nextGaussian()
ガウス正規分布に乗じたdouble値を返します.
以下の例はRandomを用いて5個の[000]内の乱数を生成する.
Randomの使用上の注意事項
ランダム数を生成するには2つの方法があり、1つはシードを持たないことであり、1つはシードを持つ次のようなコードであり、2つのランダム数を定義し、同じシードを設定し、100以内のランダム整数を返し、2つのランダム数の順序は同じである.
Randomの乱数は実際には擬似乱数であり,シードが決定すれば生成される乱数の順序が一致するので,例の2つのRandomインスタンスが順序が一致する乱数を生成することを避ける.一般的には2つの方法がある. Randomインスタンスを生成するときはシードを指定しません. 単一例のRandomクラスを生成し、乱数を生成します.
多くの場合、ランダム数が必要です.特にテストをするときです.Javaで乱数を生成するにはいくつかの方法があります
Java.util.UUID-一意の文字列を生成
UUIDクラスで一意の文字列を生成することができ、グローバルで一意であり、すべてのコンピュータで生成される文字列は異なる.使用方法は次のとおりです.
String uuid = UUID.randomUUID().toString();
Math.random()
Math.random()法により[0,1]区間におけるdoubleタイプの数字を生成することができ、0でも1未満でもよい.その他の一般的な使用方法は以下の通りである.
double :Math.random()
[0,100) :(int)(Math.random()*100)
Math.random()のソースコードに入ると、その具体的な使用は、呼び出されたRandomのnextDouble()メソッドです.
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
private static final class RandomNumberGeneratorHolder {
static final Random randomNumberGenerator = new Random();
}
Randomクラス
Randomクラスはランダムな数を生成し、その主な方法は以下の通りである.
方法
意味
public Random()
構築方法
public Random(long var1)
乱数のシードを設定する方法
public synchronized void setSeed(long var1)
乱数のシードを設定
public void nextBytes(byte[] var1)
ランダムなバイト数を生成し、パラメータvar 1が受信する.
public int nextInt()
整数を取得します.
public int nextInt(int var1)
0-var 1範囲のランダム数を取得
public long nextLong()
Long型の乱数を取得
public boolean nextBoolean()
booleanタイプの乱数を取得
public float nextFloat()
floatタイプの乱数を返します
public double nextDouble()
Doubleタイプの乱数を取得し、[0,1]
public synchronized double nextGaussian()
ガウス正規分布に乗じたdouble値を返します.
以下の例はRandomを用いて5個の[000]内の乱数を生成する.
Random random = new Random();
// 5 0 100 。
System.out.println(" 5 0 100 。 nextInt(100)");
for (int n = 0; n < 5; n++) {
System.out.print(random.nextInt(100)+", ");
}
Randomの使用上の注意事項
ランダム数を生成するには2つの方法があり、1つはシードを持たないことであり、1つはシードを持つ次のようなコードであり、2つのランダム数を定義し、同じシードを設定し、100以内のランダム整数を返し、2つのランダム数の順序は同じである.
Random random = new Random(100);
Random random1 = new Random(100);
// 5 int next()
System.out.println(" 5 int next()");
for (int n = 0; n < 5; n++) {
System.out.println(random.nextInt(100)+" "+random1.nextInt(100));
}
:
15,15
50,50
74,74
88,88
91,91
Randomの乱数は実際には擬似乱数であり,シードが決定すれば生成される乱数の順序が一致するので,例の2つのRandomインスタンスが順序が一致する乱数を生成することを避ける.一般的には2つの方法がある.