分享
 
 
 

随机数的困惑(java.util.Random/Math.Random()

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

綠起:

想在J2ME中产生一个随机的潜艇出现的位置,其实也只需要一个Y坐标而已。用了nextInt方法,代码类似如下:,

奇怪的是要得到两个随机的数,得到的却是两个相同的数而已:当场

class T{

int x;

java.util.Random r=new java.util.Random();

T() {

x=(r.nextInt() >>> 1) %10; //产生一个0-9之间一个数、、、

}

int getT() {

return this.x;//得到这个随机数

}

}

public class TR {

public static void main(String[] args) {

for(int i=0;i<2;i++) {

T t=new T();

System.out.println(t.getT());//输出这个随机数,但结果很大程度上是一样的、、

}

}

}

于是找到一些关于随机数的资料:

得到结论如下:

1。导致随机数一样的原因为:因为随机数用的是当前时间做随机种子,就是new Random(时间为种子的),所以程序出现的太快会出现一样的原因。

解决办法:

在产生随机数的时候让他隔个一段时间,如:

try {Thread.sleep(100);} catch(Exception e) {}

产生的就没有问题了。

关于随机数:

产生随机数的方法:

1。用Random()之后调用nextInt()来产生随机数,至于想要产生自己想要的范围就要做一下手脚 了,取正取模就可以了

如:(rand.nextInt()>>>1 ) % 101

2。其实用nextInt()这个方法已经很老套了,而且如果一般用作产生一定范围的随机数的话(用上面的方法,取正取模),就会出现数值偏小的情况,所以JDK升级的版本的用法就为nextInt(100)产生0-100之间的随机数:

3。其实还有一个方法就是Math.random()来产生一个0-1之间的浮点数:之后你就可以*你要的范围了,取整就可以,这个方法可以有效的避免上面重复的问题,

4。手机上的用法:可惜的是J2ME只提供nextInt()不提供nextInt(范围)(MIDP2.0也不支持),更不支持Math.random我想主要是用到了浮点运算吧,我想手机还是用不了,(不知道为什么用nextInt(范围)WTK可以运行,(JbuilderX提示有这个方法?但是API里面又没有,同时如果用S60做DEVICE的话,这个地方会报错,其他的DEVICE不会报错,)但是在爱鸡6600上,通不过,呵呵,还好早发现这个问题,鸡6上又不报错,寒~~~)

总结:

一般最好用nextInt(范围)的,如果不是大量的运算的话,就可以用Math.random了,(因为他可以运算起来慢一些,浮点之后再取整),像我没有办法只好用第一个方法了

困惑:如下方法产生的随机数居然不太会重复,何解~~~

public class TR {

public static void main(String[] args) {

java.util.Random r=new java.util.Random();

int x;

for(int i=0;i<2;i++) {

x=(r.nextInt() >>> 1) %101;

System.out.println(x);

}

}

}

参考文章:

http://www.csdn.com.cn/program/2848.htm

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有