产生随机数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值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 线程 单例_多线程单例模式

多线程单例模式原文&#xff1a;https://blog.csdn.net/u011726005/article/details/823565381. 饿汉模式使用饿汉模式实现单例是十分简单的&#xff0c;并且有效避免了线程安全问题&#xff0c;因为将该单例对象定义为static变量&#xff0c;程序启动即将其构造完成了。代码实…

java 中文 编译_java编译带中文是显示乱码的错误

FirstJava.java:3: 错误: 编码GBK的不可映射字符System.out.println("娆㈣繋瀛︿範Java绋嬪簭锛?")锛?^FirstJava.java:3: 错误: 编码GBK的不可映射字符System.out.println("娆㈣繋瀛︿範Java绋嬪簭锛?")锛?^FirstJava.java:4: 错误: 编码GBK的不可映射…

java 中间件 pdf_Java中间件技术及其应用开发 PDF扫描版[51MB]

Java中间件技术及其应用开发 内容提要&#xff1a;本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧&#xff0c;包括JSP、JavaServlet、JDBC数据库开发、使用JavaMail开发邮件应用程序、RMI(远程方法调用)、EnterpriseJavaBeans开发、使用CORBA以及JavaIDL进行…

java千万用户实现实时排名_想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜...

本文由云社区发表前言业务已基于Redis实现了一个高可用的排行榜服务&#xff0c;长期以来相安无事。有一天&#xff0c;产品说&#xff1a;我要一个按周排名的排行榜&#xff0c;以反映本周内用户的活跃情况。于是周榜(按周重置更新的榜单)诞生了。为了满足产品多变的需求&…

java循环左一_左旋转字符串(Java)-循环Index方式

左旋转字符串(Java)-循环Index方式题目要求​ 汇编语言中有一种移位指令叫做循环左移(ROL)&#xff0c;现在有个简单的任务&#xff0c;就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S&#xff0c;请你把其循环左移K位后的序列输出。例如&#xff0c;字符序列S”…

java jna jni_JNA, Java Native开发利器

下面的文章由转载而来&#xff0c;java与c的调用基本思路是这样子&#xff0c;但是结合我的使用经验&#xff0c;在使用jna和jnative的时候需要考虑到jdk的版本&#xff0c;jnative跟jdk1.4的结合可能会有点问题&#xff0c;因为我之前选的是jnative&#xff0c;而我们的jdk版本…

java枚举类型高级用法_枚举及其高级用法

Enum源码&#xff1a;Enum.java/** Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/packagejava.lang;importjava.io.Serializable;importjava.io.IOException;importja…

java 解析http返回的xml_Java解析调用webservice服务的返回XML串详解

本文由Markdown语法编辑器编辑完成。1. 需求分析&#xff1b;已知当在调用某一webservice的服务时&#xff0c;如果调用成功&#xff0c;会接受到该服务的返回XML串。后端在获取了该XML原始串时&#xff0c;需要进行解析&#xff0c;将其解析为JSON格式&#xff0c;以便于发送到…

java车次信息_从火车站车次公示栏来学Java读写锁

Java多线程并发之读写锁本文主要内容&#xff1a;读写锁的理论&#xff1b;通过生活中例子来理解读写锁&#xff1b;读写锁的代码演示&#xff1b;读写锁总结。通过理论(总结)-例子-代码-然后再次总结&#xff0c;这四个步骤来让大家对读写锁的深刻理解。本篇是《凯哥(凯哥Java…

java构建xml参数_Java中使用XML创建EMAIL模板

邮件模板让我们来看看邮件模板的格式。模板是XML文件&#xff0c;它包含一个根元素和一系列根的子元素。根元素是。必要的子元素是, , 和 。可选的子元素是 , , 和 。如果你使用过邮件系统&#xff0c;那么你可以推导出这些元素实际包含的内容。可选的元素有多个实例&#xff0…

java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件

问题&#xff1a;多个*.java文件编译*.java文件依赖其他的jar包如下文件结构&#xff1a;F:\jar_prachild--child01--MyChild.java--child02--MyChild.javaparent--MyParent.javaMyParent.javapackage parent;public class MyParent{public void show(){System.out.println(&qu…

java11创建项目_2019-04-11 使用IDEA创建SpringBoot项目

一. 使用IDEA新建项目根据需要选择starter这样使用IDEA搭建的一个SpringBoot项目就可以了。同样可以通过https://start.spring.io/构建。二. 结构分析1.Springboot01Application:运行Springboot01Application就可以启动Spring Boot工程。2. pom.xml中则配置好了选中的starter的…

微博php sdk,php sdk微博第三方授权登入简单使用

简单说一下OAuth协议&#xff1a;OAUTH是一种开放的协议&#xff0c;为桌面、手机或web应用提供了一种简单的&#xff0c;标准的方式去访问需要用户授权的API服务。下面我们去微博开发者平台登入微博。如图填写信息&#xff1a;网站接入->创建新应用填写信息后可以拿到微博给…

php xml数据拼接,在PHP中合并XML文件

我有2个文件&#xff0c;1.xml并且2.xml两个文件的结构相似&#xff0c;我想拥有一个。我尝试了许多解决方案&#xff0c;但只有错误-坦白地说&#xff0c;我不知道这些脚本是如何工作的。1.xml&#xff1a;1Title 1Author 1...2.xml&#xff1a;190Title 190Author 190...我想…

java中document解析jsp,JSP基于dom解析xml实例详解

本文实例讲述了JSP基于dom解析xml的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;初次学习用dom操作xml文件&#xff0c;有很多不足之处&#xff0c;牛人多给点建议&#xff0c;练习时我没对中文做乱码处理&#xff0c;也没做验证哦&#xff01;O(∩_∩)O~实体类…

php导出excel不完整,急:php导出excel时,因数据比较多,经常导出不完整就结束了【php系统数据导出excel表格】...

急&#xff1a;php导出excel时&#xff0c;因数据比较多&#xff0c;经常导出不完整就结束了设置超在服务器上设置也可以&#xff0c;在当前文件写代码也可以服务器上找到php安装下的php.ini找到max_execution_time这句&#xff0c;将值改为你想要的时间&#xff0c;或者该为0表…

php禁用eval,zp blog

最新版的suhosin需要php版本大于5.4&#xff0c;对于5.4以下版本则需要安装补丁&#xff0c;尴尬之处在于安装补丁需要重新编译PHP并安装…… 总感觉莫名的不好干货&#xff1a;1、suhosin-0.9.36版本可以支持PHP5.3 且不用安装补丁2、安装步骤wget https://download.suhosin.…

php 堵塞 消息队列,PHP的并发处理

PHP如何处理并发什么是进程、线程、协程进程 Process计算机中的程序关于某数据集合上的一次运行活动&#xff0c;“一个执行中的程序”系统进行资源分配和调度的基本单位三态模型&#xff1a;多道程序系统中&#xff0c;进程在处理器上交替运行&#xff0c;状态不断地发生变化运…

php中节点值怎么获取,php – 节点更新:获取旧值

我正在使用nodeapi更新更新节点,但是我需要在幕后进行更多操作,这需要我知道字段的旧值/是否有一种方法可以在覆盖之前获取字段的旧值. 最佳答案 编辑hook_nodeapi()只对新的$node对象起作用,所以我之前的回答对你没用.相反,您需要在提交时访问节点.为此,您需要注册自己的提交处…

php 购物车封装代码,PHP中封装Redis购物车功能

// 服务层namespace Common\Service;use Vendor\Func\Red;class CartService extends CommonService {protected $redis;protected $pre_key;public function __construct(){parent::__construct();$this->redis Red::create();$this->pre_key C(USER.CART).C(APPID).:…