- 2012-12-20 (木) 23:28
- Java
java.util.Randomクラス
Random#nextInt() で乱数を取得できます。
引数で乱数の範囲を指定します。指定値がnだとすると、0~[n-1]のいずれかの値が返されます。
例えば、100を指定すると0~99の範囲のいずれかの値が取得されることになります。
乱数の生成にはseed値と呼ばれる乱数の種が使われるのですが、この値が同じだと毎回同じ順で同じ値が取得されることになってしまいます。
本当の意味での乱数を取得したいのであればランダムなseed値を与えればよいのですが、このseed値に最適なのが System.currentTimeMillis() で取得できるシステム時間です。
Randomクラスのコンストラクタでseed値が指定できるようになっていますので、このシステム時間を設定するようにしましょう。
以下は0~9までの乱数を取得するメソッドのサンプルです。
long seed = System.currentTimeMillis();
Random rnd = new Random(seed);
/**
* 乱数を取得する。
*/
public int getRandomValue() {
int rndValue= rnd.nextInt(10);
return rndValue;
}
java.lang.Mathクラス
Math.random() で0.0以上1.0未満の乱数を取得できます。
0~9までの乱数を取得したい場合などは乗算を使います。
public int getRandomValue() {
int rndValue = Math.random() * 10;
return rndValue;
}