• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

您的位置:您的位置:软件测试技术网 >> 软件测试技术 >> 开发语言 >> Java >> 查看资讯

字号: | 推荐给好友 上一篇 | 下一篇

JAVA基础:随机整数的生成

发布: 2008-6-03 10:34 | 作者: 不详 | 来源: 赛迪网 | 查看: 33次 | 进入领测软件测试网论坛讨论

领测软件测试网 软件测试技术网P'u0L&z@wQ a

软件测试技术网s.[]u~ G0K

,O^ hW*J{)Y"{最后,也可能是最糟糕的:随机数不是均匀分布。如果你执行了上述的两段代码,第一段代码的结果将会大于715,000,000,考虑到数值范围的中点(midpoint)是715,827,882,所以这是一个可以接受的结果。然而,你会吃惊的发现第二段代码得到的平均值肯定不会超过600,000,000。 软件测试技术网4xCA,SR%C:u

1nb3]y kqI^*j为何第二段代码的结果会如此的偏差?纠其本质,问题出在数值分布的不均匀。当你进行取模运算时,你将过大的数转换成了较小的。这使得较小的数更容易产生。
K ~X2RfsEF软件测试技术网W;XM;_9z8p
使用nextInt(range)将会解决上述的三个问题。 软件测试技术网Jeu0]a0[5}'^G B
软件测试技术网 JP*\dRyz
还有一种随机数生成方法——使用Math.random()。这个方法的效果如何?
hYY]e软件测试技术网N[fg@ Y'?.U
sum = 0;
"Y&^g2S%S2u/C Mj7@for (int i=0; i<count; i++) { 软件测试技术网/@"d!k