回 帖 发 新 帖 刷新版面

主题:[讨论]随机数的问题

各位大侠好,请各位给我详细解释一下Math类的random方法到底是怎么回事。
比如就以这条语句说吧:seed=(int)(Math.random()*3);

回复列表 (共3个回复)

沙发

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);

板凳

非常感谢给我这么的答案,我还想请教你知道这个方法的原理是什么吗,为什么你给出的那些随机数是那样表示了。谢谢了

3 楼

随机数的实现原理相当复杂了,这个我就不懂了,还是请其他人回答吧。

如果你对随机数产生原理有兴趣最好自己去查阅一下相关的资料。

另外,API中的方法我们只要学会调用就可以了,我们没有必要去过多地了解某一个方法的实现原理,更何况方法的实现原理也根本不是程序员所需要了解的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册