Random 类专门用于生成一个伪随机数,他有两个构造函数:一个构造函数使用默认的种子,另一个构造函数需要程序员
显示传入一个long 类型的种子。同时他提供了很多方法来生成伪随机数。即如果类的两个实例时用同一个种子创建的,
对他们以同样的顺序调用方法,则他们会产生相同的数字序列。
下面做个试验验证一下,当两个Random对象的Seed相同时,他们会产生相同的数字序列,需要注意的是,当使用默认的种子
构造Random对象时,那么他们的seed就相同,属于同一个seed。

import java.util.Random;
class  SeedTest
{
public static void sop(Object obj)
{System.out.println(obj);
}
public static void main(String[] args)
{Random r1 = new Random(50);sop("第一个seed为50的随机数对象:");sop("r1.nextBoolean():\t" + r1.nextBoolean());sop("r1.nextInt():\t\t" + r1.nextInt());sop("r1.nextDouble():\t" + r1.nextDouble());sop("r1.nextGaussian():\t" + r1.nextGaussian());sop("-------------------------------------------");Random r2 = new Random(50);sop("第二个seed为50的随机数对象:");sop("r2.nextBoolean():\t" + r2.nextBoolean());sop("r2.nextInt():\t\t" + r2.nextInt());sop("r2.nextDouble():\t" + r2.nextDouble());sop("r2.nextGaussian():\t" + r2.nextGaussian());sop("-------------------------------------------");Random r3 = new Random(100);sop("第三个seed为100的随机数对象:");sop("r3.nextBoolean():\t" + r3.nextBoolean());sop("r3.nextInt():\t\t" + r3.nextInt());sop("r3.nextDouble():\t" + r3.nextDouble());sop("r3.nextGaussian():\t" + r3.nextGaussian());sop("--------------over-------------------------");
}
}

运行结果:
第一个seed为50的随机数对象:

r1.nextBoolean():       true
r1.nextInt():           -1727040520
r1.nextDouble():        0.6141579720626675
r1.nextGaussian():      2.377650302287946

第二个seed为50的随机数对象:

r2.nextBoolean():       true
r2.nextInt():           -1727040520
r2.nextDouble():        0.6141579720626675
r2.nextGaussian():      2.377650302287946

第三个seed为100的随机数对象:

r3.nextBoolean():       true
r3.nextInt():           -1139614796
r3.nextDouble():        0.19497605734770518
r3.nextGaussian():      0.6762208162903859

从上面运行结果来看,如果两个Random对象的种子相同,而且方法的调用顺序也相同,则他们会产生相同的
数字序列,这也说明,Random 产生的数字并不是真正随机的,而是一种伪随机。
所以为了避免两个Random对象产生相同的数字序列,开发时通常推荐使用当前时间来作为Random对象的种子
即:

转载于:https://www.cnblogs.com/yangzhi/archive/2012/10/16/3576628.html

java中的Random()注意!相关推荐

  1. JAVA中的Random详解

    JAVA中的Random详解 首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的.我们分别介绍一下 util中的rando ...

  2. Java中的Random()函数 【转载】

    今天在做Java练习的时候注意到了Java里面的一个随机函数--Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于Random函数的总结:   Java中 ...

  3. JAVA中的Random()

    Java中存在着两种Random函数: 一.java.lang.Math.Random; 二.java.util.Random 第一种: 调用这个Math.Random()函数能够返回带正号的doub ...

  4. java中随机数Random和ThreadLocalRandom()用法与区别

    package com.test;import java.util.Random; import java.util.concurrent.ThreadLocalRandom;public class ...

  5. java中countinue,.random(用于产生一个随机数)入门可看

    1.countinue:用在循环中,基于条件控制,跳过其次循环体内容的执行,继续下一次的执行 break:用在循环中,基于条件控制,终止循环体内容的执行,也就是结束当前的整个循环 eg:public ...

  6. java random构造方法_Java中的Random()函数及两种构造方法

    Java中存在着两种Random函数: java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是 ...

  7. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  8. Random类(Java中的随机类)

    http://hi.baidu.com/jfeng_chan/item/3e4914b781a2db9e1846977b 在实际的项目开发过程中,经常需要产生一些随机数值,例如网站登录中的校验数字等, ...

  9. java中random的头文件_JAVA中的Random()函數

    Java中存在着兩種Random函數: 一.java.lang.Math.Random; 調用這個Math.Random()函數能夠返回帶正號的double值,該值大於等於0.0且小於1.0,即取值范 ...

最新文章

  1. MATLAB编写ode文件,MATLABODE45问题M文件为br/functiondq 爱问知识人
  2. WCF部署:让IIS有权限访问证书文件
  3. 解决Echarts窗口自适应失效问题
  4. 判断 小程序_社区团购小程序商城系统,可以从哪些方面判断?
  5. 在SSH整合过程中:org/hibernate/engine/spi/SharedSessionContractImplementor
  6. 吴恩达《机器学习》课程总结(16)推荐系统
  7. 阴差阳错2019-12-13
  8. 题目:16版.雇员的工作职责(一)
  9. zend_soap做webservice的使用方法
  10. java中的特殊字符集合
  11. 使用zabbix监控esxi
  12. 整数区间内整数的因子的个数
  13. 1.Chrome开发者工具不完全指南(一、基础功能篇)
  14. 油猴(Tampermonkey)安装教程
  15. 产品的国内版和国际版背后的思考
  16. java——15位身份证号码升级到18位
  17. 机器学习的13种算法和4种学习方法,推荐给大家
  18. 超详细的元器件分类大全—电阻、电容、电感
  19. 下属执行不给力?真相是90%的领导不会布置任务!
  20. 《数据最重要的成员--算法》

热门文章

  1. 在?三缺一,来斗个地主——肝个斗地主案例(java)
  2. Java访问权限(详尽版)
  3. 前端开发学习常用网站网址及介绍(都是免费的)
  4. 云开发使用 got 的 get/post 传参请求示例代码
  5. 2-Runtime objc_object objc_class
  6. JetBrains大力推广Kotlin为哪般?
  7. JSP中的EL表达式详细介绍
  8. jenkins添加git源码目录时报Error performing command错误
  9. tcpdump-根据IP查看程序与服务都用了哪些端口
  10. Away3d 骨骼动画优化