J*y 发帖数: 271 | 1 java 有经验的,帮忙看看这个问题:
if (Math.random()>.5)
setid=2;
else
setid=1;
怎样set seed, 使setid 值固定,便于检验结果?
3x | g*****g 发帖数: 34805 | 2 Math.random()的值永远<1,所以setid=2.
Math.random调用的是Random的缺省constructor, 缺省constructor调用的是
Random() { this(System.currentTimeMillis()); }
所以如果你要固定的序列,用
public Random(long seed)方法
比如类似
Random random = new Random(0);
setid = random.nextInt(10) > 5? 2:1;
【在 J*y 的大作中提到】 : java 有经验的,帮忙看看这个问题: : if (Math.random()>.5) : setid=2; : else : setid=1; : 怎样set seed, 使setid 值固定,便于检验结果? : 3x
| J*y 发帖数: 271 | 3 thanks
yes. have to use random. math.random cannot set seed.
【在 g*****g 的大作中提到】 : Math.random()的值永远<1,所以setid=2. : Math.random调用的是Random的缺省constructor, 缺省constructor调用的是 : Random() { this(System.currentTimeMillis()); } : 所以如果你要固定的序列,用 : public Random(long seed)方法 : 比如类似 : Random random = new Random(0); : setid = random.nextInt(10) > 5? 2:1;
|
|