主题:[讨论]随机数的问题
postg_cm
[专家分:40] 发布于 2008-09-10 15:37:00
各位大侠好,请各位给我详细解释一下Math类的random方法到底是怎么回事。
比如就以这条语句说吧:seed=(int)(Math.random()*3);
回复列表 (共3个回复)
沙发
happyboy2007 [专家分:3900] 发布于 2008-09-11 09:28:00
Math.random() 会产生一个随机数,所产生的随机数的范围是 0 <=r <1,它的返回类型是double,所以必要时要进行强制转换。
如果要产生一个从 0-99 的随机整数
int random = (int)(Math.random()*100);
如果要产生一个从20-50的随机整数
int random = (int)(Math.random()*31+20);
如果要产生从 A-Z 之间的字符
char random = (char)(Math.random()*26+65);
板凳
postg_cm [专家分:40] 发布于 2008-09-11 10:24:00
非常感谢给我这么的答案,我还想请教你知道这个方法的原理是什么吗,为什么你给出的那些随机数是那样表示了。谢谢了
3 楼
happyboy2007 [专家分:3900] 发布于 2008-09-11 11:00:00
随机数的实现原理相当复杂了,这个我就不懂了,还是请其他人回答吧。
如果你对随机数产生原理有兴趣最好自己去查阅一下相关的资料。
另外,API中的方法我们只要学会调用就可以了,我们没有必要去过多地了解某一个方法的实现原理,更何况方法的实现原理也根本不是程序员所需要了解的。
我来回复