点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第十章汇总
10.9 生成随机数
我们己经使用了Random类,让我们研究的更仔细些。Random类能使你创建多样的互相独立的随机数发生器。这个类的每个对象是一个随机数发生器,任何Random对象可以生成int、long、float或double类型的伪随机数。通过一个算法使用一个"种子"和由此生长一系列数字来创建这些数。使用相同的种子对这个算法初始化会产生相同的序列,因为算法是确定性的。
生成的整数值被均匀地分布在整数类型的范围内L浮点数值被限定在两种类型中0.0到l,0的范围内。你也可以用一个高斯(即均匀)分布生成double类型的数,该分布的均值为0,0,标准偏差为l,0这是一个典型的钟形曲线代表许多随机事件分布的可能性。
Random对象有两个构造函数。默认的构造函数从你的计算机时钟取得的当前时间作种子值生成伪随机数创建一个对象。另一个构造函数接受一个long类型的自变量作种子。
Random lottery =new Random (); //Swquen not repeasable
Random repeatable=new Random (997L) //Repear\table sequence
你如果使用默认的构造函数,同一个程序每次运行生成的随机数序列都会不同,要提防在同一个构造函数中创建2个生成器。解决问题花费的时间是一毫秒,因此如果在前边的语句中建立了两个对象,通常这两个对象会生成相同的序列,因为使用开始的种子值的次数是相同的。用同一种子创建的Random对象总产生相同的序列,当你测试程序时对这一点非常重要测试一个输出不重复的程序是一个挑战尸Java中用一个给定的种子建立的随机数生成器的一个主要特点是从一个给定的种子不仅总产生同一个伪随机数序列,而且在不同计算机上也是这样。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |