-
2021-03-05 17:31:11
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类有两种方式构建方式:带种子和不带种子
不带种子: 此种方式将会返回随机的数字,每次运行结果不一样
Random r = new Random();//创建一个新的随机数生成器。
for (int i = 0; i < 5; i++) {
System.out.println(r.nextInt(100));
//System.out.println(r.nextInt(100));//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
}
带种子: 此种方式,无论程序运行多少次,返回结果都是一样的
如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
Random r = new Random(10); //使用单个 long 种子创建一个新的随机数生成器。
for (int i = 0; i < 5; i++) {
System.out.println(r.nextInt(100));
在构造函数里用,会根据你给的种子声称随机数序列不同的种子,随机数序列不同比如这个:用1作种子:Random ran = new Random( 1 );用当前的系统时间作为种子Random ran = new Random((new Date()).getTime());或Random ran = new Random(System.currentTimeMillis());推荐第二种
更多相关内容 -
Java产生随机数的两种方式
2020-03-04 12:46:33在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。本文介绍了两种方法的使用过程。 -
java产生随机数
2021-03-17 14:31:43在Java语言中,除了可以通过random方法来产生随机数之外,还可以通过一个random类来产生随机数。程序开发人员可以通过实例化一个Random对象来创建一个随机数的生成器。如Random i=new Random(...可见虽然random方法其自身产生的随机数有比较严格的范围限制。但是只要对其进行合理的转换,程序员仍然可以采用这个方法产生用户所需要的随机数据。二、通过Random类来生成随机数。在Java语言中,除了可以通过random方法来产生随机数之外,还可以通过一个random类来产生随机数。程序开发人员可以通过实例化一个Random对象来创建一个随机数的生成器。如Random i=new Random()。通过这条语句就利用了Random类创建了一个随机数的生成器。不过以这种方法创建随机数时,与采用Random方法产生随机数的机制不同。利用现在这种方式实例化对象时,Java编译器会以系统当前的时间作为随机数生成器的种子。由于时间时时刻刻在变化的。若以这个时间作为生成器的种子,就可以保证生成的随机数真的是随机的,其生成的随机数重复率会大大的降低。利用这种方法其比较方便。如可以利用提供的关键字,让程序返回一个随机的整数(采用int nextInt(10))等等。不过其返回控制要比Random方法困难一点。如现在需要系统提供一个10到50之间的随机奇数,利用这个Random类就无法完成。也就是说,利用这个Random类来生成随机数,其只能够控制上限,而不能够控制下限。换一句话说,其可以指定最大的随机数范围,而不能够指定最小的随机数范围。所以,在灵活性上,其比Random方法要稍微差一点。另外利用这个方法来实现的话,必须先创建一个对象。也就是说利用Randow类来创建对象。这跟Randow方法不同。像上面举的例子中,Randow方法本身就是一个math类中方法,可以直接调用,省去对象创建的方法。为此笔者建议各位读者与程序开发人员,最好还是使用Random方法来创建随机数。只有在生成一些比较特殊的随机数时采用Random类。如现在需要生成一个概率密度为高斯分布的双精度值随机数时,则通过采用Random类的方法来创建随机数相对来说比较简单一点。三、产生随机的字符。上面介绍的两种方法,产生的都是随机的数值型数据。但是有时候用户可能还需要产生随机的字符。其实也可以利用random方法来产生随机字符。如可以利用代码生成一个随机的小写字符:(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数类似。通过以上的代码就可以生成一个范围之内的任意随机字符。通过对这个代码进行适当的修整,还可以生成任意两个字符之间的随机字符与任意大写字符的随机字符。其转换的方式跟上面提到的任意范围之内的随机数类似。各位读者若感兴趣的话,可以自己进行测试一下。师傅领进门,修行在自身。如果笔者在这里一股脑儿将所有的答案告诉大家,大家的印象不会很深。大家若回去自己动手试试看,反而更容易记住。笔者在这里给大家一个提示,只需要根据m+(int)(Math.Random()*(n-m))这条语句来调整(char)(‘a’+Math.random()*(‘z’-‘a’+1))这个代码即可。最后笔者需要强调的一点就是在用户传入参数的时候,最好要对用户传入的参数进行合法性检查。以免用户传入的参数不符合既定的要求,如参数需要的是数值型的数据而传入的却是字符型的数据,而导致程序运行出错。来
-
Java产生随机数的两种方式.doc
2021-09-30 22:54:13Java产生随机数的两种方式.doc -
java产生随机数的两个方法.doc
2021-09-30 22:54:12java产生随机数的两个方法.doc -
JAVA 产生随机数 排序 输出显示
2021-06-18 23:31:53产生20个随机数存放到数组,对这20个随机数按升序排序,最后按要求输出随机数。 3 概要设计 4 源代码 /* * Question: * 随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个...1 题目
编程实现:随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。
2 需求分析
产生20个随机数存放到数组,对这20个随机数按升序排序,最后按要求输出随机数。
3 概要设计
4 源代码
/* * Question: * 随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。 */ public class Random_Data_Sort_Output { public static void main(String[] args) { // TODO 自动生成的方法存根 int [] data = new int[20]; int i,j,tmp; //产生1~100的20个随机数 for(i = 0;i < 20;i++) { data[i] = (int)(Math.random() * 100 + 1); } //对这20个随机数进行排序 for(i = 0;i < 19;i++) { for(j = 0;j < 19-i;j++) { if(data[j] >= data[j+1]) { tmp = data[j]; data[j] = data[j+1]; data[j+1] = tmp; } } } //输出排序后的随机数 for(i = 0;i < 4;i++) { System.out.printf("%d %d %d %d %d\n",data[4*i],data[4*i+1],data[4*i+2],data[4*i+3],data[4*i+4]); } } }
5 运行结果
-
Java产生随机数并存入文件
2013-12-23 09:26:26利用JAVA语言产生某一特定范围的随机数,并且能够将随机数保存在具体的文件中。 -
Java 产生随机数:Java 中产生随机数的方法及应用汇总
2019-10-07 13:01:23在 Java 中提供了很多的方法能够产生随机数,在本文中将持续进行总结相应的方法和应用,对于初学者来说较为友好,同时附了简单的案例供大家参考。文章目录
前言
在 Java 中提供了很多的方法能够产生随机数,在本文中将持续进行总结相应的方法和应用,对于初学者来说较为友好,同时附了简单的案例供大家参考。
一、System.currentTimeMillis() 方法
1.1、System.currentTimeMillis() 方法原理剖析
根据 API 的介绍,调用 System.currentTimeMillis() 方法我们可以获取 1970 年 1 月 1 日午夜到现在的毫秒数(例如:1203183086328 毫秒)。
我们可以通过取余的方式得到其最后一位的整数,代码如下:
int number1 = (int)(System.currentTimeMillis() % 10);
1.2、实现随机数加法程序
利用 System.currentTimeMillis() 方法实现通过程序产生随机数让一年级学生练习加法,例题如下。
程序随机产生两个一位整数,number1 和 number2,然后显示“What is 1 + 7?”
实现代码如下:
package program3_1; import java.util.Scanner; public class AdditionQuiz { public static void main(String[] args) { int number1 = (int)(System.currentTimeMillis() % 10); int number2 = (int)(System.currentTimeMillis() / 7 % 10); Scanner input = new Scanner(System.in); System.out.print("What is " + number1 + " + " + number2 + " ?"); int answer = input.nextInt(); System.out.println(number1 + " + " + number2 + " = " + answer + " is " + (number1 + number2 == answer)); } }
实现具体如下图所示:
二、Math.random() 方法
2.1、Math.random() 方法原理剖析
使用 Math.random() 来获得一个 0.0 到 1.0 之间的随机 double 值,不包括 1.0。
通过
(int)(Math.random() * 10)
会返回一个随机的一位整数(即 0 到 9 之间的数),代码如下:int number1 = (int)(Math.random() * 10);
2.2、实现随机数减法程序
利用 Math.random() 方法实现一个让一年级学生练习减法的程序,例题如下。
程序随机产生两个一位整数 number1 和 number2,且满足 number >= number2。显示问题:“What is 9 - 2 ?”学生输入答案后,显示消息判断是否正确。
实现代码如下:
package com.bailu.test; import java.util.Scanner; public class AdditionQuiz { public static void main(String[] args) { int number1 = (int) (Math.random() * 10); int number2 = (int) (Math.random() * 10); if (number2 > number1) { int temp = number1; number1 = number2; number2 = temp; } System.out.print("What is " + number1 + " - " + number2 + " ? "); Scanner input = new Scanner(System.in); int answer = input.nextInt(); input.close(); if (number1 - number2 == answer) { System.out.println("You are right!"); } else { System.out.println("You are wrong!"); System.out.println(number1 + " - " + number2 + " = " + (number1 - number2)); } } }
实现具体如下图所示:
总结
本文给大家介绍了两种产生随机数的方法,这是最简单的两种。日后有机会我还会继续补充更多的方法,另外大家还有什么方法呢?补充到下面吧!
我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!
-
Java产生随机数代码 各种方法
2009-05-27 19:45:23Java产生随机数代码 Java产生随机数代码 -
Java产生随机数函数
2017-02-07 11:10:13Math.random(),该方法的作用是产生0和1之间(包括0,但不包括1)的一个double值。 -
JAVA产生随机数
2020-04-29 23:22:331、在JDK7之后的版本可用下面的方法产生随机数: // 通过本地线程产生随机数,可以仔细研究ThreadLocal的用法。 ThreadLocalRandom.current()....2、可以借助java.util.Random类来产生随机数。 借助java.u... -
java产生随机数方法
2018-02-27 15:38:14System.nanoTime提供相对精确的计时,但是不能用来计算当前日期,因为可能为负数,但是计算一段程序跑了多长时间还是可以的,哪怕是负数,差值是一定的import java.util.Random; public class RandomTest { public... -
Java Random类的详细介绍(Java生成随机数)
2021-01-20 02:15:14Java Random类的详细介绍(Java生成随机数)一、Random类的使用1.Random类生成随机数(int)的基本语法:2.几种常用的随机数生成二、Random类的详细介绍1.生成指定范围的数字2.Random.nextInt()与Math.random()的区别 ... -
java如何产生随机数
2021-02-12 14:51:07一、java如何产生随机数?1.打开eclipse2.新建java项目,例如取名为“suijishu”点击完成3.新建一个类进行测试4.首先要在头部插入一个包输入import java.util.Random;5.输入代码:public static int suiji = new ... -
java产生随机数的代码-java生成一定范围的随机数-java生成10个随机数
2021-02-12 19:57:33java计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。猜数小游戏代码如下,请参照:/***?猜数小游戏**/public?class?xxx?{public?static?void?main(String[]?args)?... -
java产生随机数的几种方式(转)
2021-02-27 08:42:21一.在j2se里我们可以使用Math.random()方法来产生一个...在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也... -
java生成指定范围随机数的多种代码
2020-08-29 17:17:12今天在写代码的时候需要用到一个生成指定范围随机数的函数,百度了一下,发现了很多种方法,这里简单为大家整理一下,方便需要的朋友 -
java产生随机数方法程序
2022-02-28 19:46:58//导包 import java.util.Random; public class RandomNumber{ public static void main(String[] args){ //创建对象 Random r=new Random();... System.out.println("产生的随机数是"+number); } } .. -
java产生随机数的几种方式
2011-05-17 00:28:11java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式 -
Java产生随机数
2017-05-28 13:23:00java随机数的产生 -
JAVA获取随机数
2021-03-03 11:06:25原文链接: http://blog.csdn.net/herrapfel/article/details/1885016在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用... -
java产生随机数且猜数字游戏(源码)
2021-03-13 02:09:12java产生随机数且猜数字游戏(源码)java产生随机数且猜数字游戏(源码)package 第二次作业;import java.util.Random; //相当于头文件中添加产生随机数的头文件import java.util.Scanner; //相当于简易输出语句头文件... -
Java中随机数的产生方式与原理详解
2021-02-25 19:15:15Java中随机数的产生方式与原理查阅随机数相关资料,特做整理首先说一下java中产生随机数的几种方式在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他... -
java 产生随机数(Random用法)
2020-01-07 10:27:33import java.util.*; public class Yancey77{ public static void main... //产生随机数 Random ran=new Random(); int num=ran.nextInt(100);//产生[0,100)之间的数 int counts=0; System.out.println(... -
Java生成随机数的几种方式
2022-04-16 23:16:35在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景。 1.Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有...