金沙游乐城路线检测前面曾讲到过构造Random对象的时候指定种子的问题

当前位置:金沙游乐城路线检测 > 金沙游乐城路线检测 > 金沙游乐城路线检测前面曾讲到过构造Random对象的时候指定种子的问题
作者: 金沙游乐城路线检测|来源: http://www.healthoza.com|栏目:金沙游乐城路线检测

文章关键词:金沙游乐城路线检测,随机数

  调用这个Math.random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

  第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同

  此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。

  1、java.util.Random类中实现的随机算法是伪随机,也就是

  2、相同种子数的Random对象,相同次数生成的随机数字是完全相同的;

  3、Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;

  返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。

  返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。

  返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。

  返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。

  返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

  返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。

  返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。

  1.生成[0,1.0)区间的小数:double d1 = r.nextDouble();

  2.生成[0,5.0)区间的小数:double d2 = r.nextDouble() * 5;

  3.生成[1,2.5)区间的小数:double d3 = r.nextDouble() * 1.5 + 1;

  4.生成-231到231-1之间的整数:int n = r.nextInt();

  n2 = Math.abs(r.nextInt() % 10);//方法二

  前面曾讲到过构造Random对象的时候指定种子的问题,到底指定种子有什么作用呢,这里直接用代码例子来做说明:

  再编译输出后,就再也不会得到AABB型的结果,根据代码的区别,就可以知道指定种子数,和不指定种子数的区别在于哪里了。

  1.java.Math.Random()实际是在内部调用java.util.Random()的,它有一个致命的弱点,它和系统时间有关,金沙游乐城路线检测也就是说相隔时间很短的两个random比如:

  2.java.util.Random()在调用的时候可以实现和java.Math.Random()一样的功能,而且他具有很多的调用方法,相对来说比较灵活。所以从总体来看,使用java.util.Random()会相对来说比较灵活一些。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!