Random类。 此类在CLDC1.0中已经定义。
1. 这个类有两个构造函数Random() 和Random(long seed) 并且提供了四个常用方法:
next (int bits)
nextInt ()
nextLong ()
setSeed (long seed)
2. 实例:
Random.next(1),产生负“2的1次方”~“2的1次方”之间的随机数(-2到2)
Random.next(2),产生负“2的2次方”~“2的2次方”之间的随机数(-4到4)
Random.next(3),产生负“2的3次方”~“2的3次方”之间的随机数(-8到8)
Random.next(4),产生负“2的4次方”~“2的4次方”之间的随机数(-16到16)
Random.nextInt( n ); 产生一个 [0, n) 之间的随机整数
Random.nextLong();用来产生随机长整数,最大2的64次方
Random.setSeed(long seed); 用于设定随机数的种子,即这里的seed
3. 代码解析:
public static int getRandom(int min,int max){
int ran=Math.abs(random.nextInt());
int returnRan=ran%(max-min+1)+min;
return returnRan;
}
代码中 int returnRan=ran%(max-min+1)+min 是:
把上面的随机整数 random.nextInt(),绝对值Math.abs(random.nextInt()) 后
再来取模(即取余) ran% x, 产生一个[0-x]的随机整数。
打个比方: ran = 100;
但是我要的随机数是在3-10之间的,那么上面就会是
int returnRan=ran%8+3 ;
即:int returnRan=ran%(10-3+1)+3
解释:
取余是从0-目的数之前的数。 如 x%m, 那么结果范围是 [0, m-1],
所以,取0-m之间的随机数,要 (random.nextInt()) %(m+1);
因为(random.nextInt())包括负值,再取一下绝对值,所以:
Math.abs(random.nextInt()) %(m+1);
例子:
int ran=Math.abs(random.nextInt());
1, 取0-3之间的随机整数:ran%4 = ran%(3+1);
2, 取4-9之间的随机整数:ran%6+4 = ran%(9-4+1)+4; 即,先产生0-5之间的随机数,然后再加4;
<骑猪闯天下>