川北在线核心提示:原标题:java设置随机数种子教程 菜鸟请进 java设置随机数种子教程: 一、在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。 二

原标题:java设置随机数种子教程 菜鸟请进

java设置随机数种子教程:

一、在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。

二、在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。

三、在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦

其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的

对于方法二中的Random类有以下说明:

java.util.Random类有两种方式构建方式:带种子和不带种子

不带种子:

此种方式将会返回随机的数字,每次运行结果不一样

public class RandomTest {

public static void main(String[] args) {

java.util.Random r=new java.util.Random();

for(int i=0;i<10;i++){

System.out.println(r.nextInt());

}

}

带种子:

此种方式,无论程序运行多少次,返回结果都是一样的

public static void main(String[] args) {

java.util.Random r=new java.util.Random(10);

for(int i=0;i<10;i++){

System.out.println(r.nextInt());

}

}

两种方式的差别在于

(1) 首先请打开Java Doc,我们会看到Random类的说明:

此类的实例用于生成伪随机数流,此类使用 48 位的种子,该种子可以使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 节)。

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证实现这种特性,我们为类Random指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。

Java Doc对Random类已经解释得非常明白,我们的测试也验证了这一点。

(2) 如果没有提供种子数,Random实例的种子数将是当前时间的毫秒数,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。打开JDK的源代码,我们可以非常明确地看到这一点。

/**

* Creates a new random number generator. Its seed is initialized to

* a value based on the current time:

* Random() { this(System.currentTimeMillis()); }java.lang.System#currentTimeMillis()

*/

public Random() { this(System.currentTimeMillis()); }

另外:

random对象的nextInt(),nextInt(int n)方法的说明:

int nextInt()

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

int nextInt(int n)

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

投稿邮箱:chuanbeiol@163.com   详情请访问川北在线:http://www.guangyuanol.cn/

java 设置随机数种子_java设置随机数种子教程 菜鸟请进相关推荐

  1. java服务进程名_java设置进程名称 如何修改java程序的进程名

    如何修改java程序的进程名 把javaw.exe改名 同样的,你把java.exe改名,比如改成 myjava.exe 启动程序的时候 myjava your_class 这样进程就是myjava那 ...

  2. java excel 背景_Java设置Excel背景

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java 设置Excel表格颜色背景(即指定单一颜色作为背景色).图片背景(即 ...

  3. java页面字体设置颜色_java 设置字体颜色字体 窗体设置图片背景

    packageqq;importjavax.swing.*;importjava.awt.*;importjava.awt.event.WindowEvent;publicclassQ1{JWindo ...

  4. java excel 数据有效性_Java设置Excel数据验证(数据有效性)

    数据验证是Excel 2013版本中,数据功能组下面的一个功能,在Excel2013之前的版本,包含Excel2010 Excel2007称为数据有效性.通过在excel表格中设置数据验证可有效规范数 ...

  5. java excel 数据有效性_Java 设置Excel数据验证(数据有效性)

    数据验证是Excel 2013版本中,数据功能组下面的一个功能,在Excel2013之前的版本,包含Excel2010 Excel2007称为数据有效性.通过在excel表格中设置数据验证可有效规范数 ...

  6. java给frame设置背景_JAVA设置FRAME背景总结设置背景图片

    Java中有关Frame背景的设置总结 我们在进行图形用户界面编程时,为了做出一个漂亮.个性化的界面,那么界面的背景就必须考虑了.要想灵活使用背景,就一定要对frame的基本有一些了解,因为在java ...

  7. java 事务提交_JAVA设置手动提交事务,回滚事务,提交事务的操作

    我就废话不多说啦,还是直接看代码吧! /** * 设置数据库是否自动提交事务 * @param flag * @throws SQLException */ public void setAutoCo ...

  8. java 设置热键_Java设置全局热键——第三方包jintellitype实现

    Java原生API并不支持为应用程序设置全局热键.要实现全局热键,需要用JNI方式实现,这就涉及到编写C/C++代码,这对于大多数不熟悉C/C++的javaer来说,有点困难.不过幸好,国外有人已经实 ...

  9. java设置日历_java – 设置日历实例的时间

    我正在尝试将时间设置为Calendar实例,但我遇到了奇怪的行为.我们来看看一些例子: Calendar c = Calendar.getInstance(); //c.setTime(date); ...

最新文章

  1. Linux Kernel中gicv3实现:SPIs中断routing到指定的CPU
  2. RxJava2 源码解析(一)
  3. 高清 网络摄像机 华为海思3510芯片
  4. js分页--存储数据并进行分页
  5. 开始时间小于 结束时间 js_DNF分享红包开始及结束时间 红包有什么奖励相关介绍...
  6. 谁说count(*) 性能最差,我需要跟你聊聊
  7. 基于JQuery做的一个简单的点击显示和隐藏的小Demo
  8. 如何部署林根域、子域和域树
  9. 【忆往昔】我欠老牛两本书
  10. 视频 Docker 学习(高级篇)
  11. Oracle 字段 中文英文拆分
  12. android最新系统排行,四大安卓系统排名,Flyme最好?
  13. flink的mysql两阶段提交_Flink 源码之两阶段提交
  14. 微博视频号搬砖项目,单号月入1000+!
  15. ValueError: Variable in_hidden/weights already exists, disallowed. Did you mean to set reuse=True or
  16. 苹果html 闪退,苹果打开软件闪退是怎么回事_苹果手机一打开软件就闪退如何解决-win7之家...
  17. 360cdn能挡住cc攻击_云防CDN是网页CC攻击的克星?cdn集群防御
  18. 【hadoop生态之Hive】Hive的基本概念和安装【笔记+代码】
  19. 用ArcMap打开MXD文件报One or more layers failed to draw错误!
  20. ios如何设置系统定位服务器,ios怎么开定位服务器

热门文章

  1. 图像二值化中阈值算法浅析
  2. ios相机内存_传iPhone 11 Pro配备相机专用内存
  3. Kali工具正式篇 (第二章-3) 信息收集之目录扫描-dirbuster
  4. html 井号 转义,url中出现井号(#)的问题
  5. 2023上海车展:域控解决方案盘点
  6. 怎么找回删除的照片和视频呢?
  7. 信息化幼儿园解决方案
  8. i712700h怎么样 i7 12700h参数 i712700h评测
  9. camera接口---MIPI CSI-2接口、DVP接口和FPD-Link III LVDS、GMSL等接口对比
  10. CVPR 2022 | 腾讯AI Lab入选论文解读,关注图像理解、生成、建模及可信AI