java基础--16.java.util.Random类--产生随机数的N种方法
来源:互联网 发布:java得到项目路径 编辑:程序博客网 时间:2024/05/16 12:33
产生随机数的方法:
1.使用Math类自带的random方法
random方法产生的是0.0-1.0之间的随机数
1.1产生任意范围之内的随机数
参考公式: (int)( Math.random() * (end - start + 1))+start
例:产生5-8之间的随机数:
int x = (int)(5+Math.random()*(8-5+1));
2.使用java.util类中的Random类
2.1带种子的构建方式:
A:Random() 默认种子,每次产生的随机数不同
2.2不带种子的构建方式:
B:Random(long seed)指定种子,每次种子相同,随机数就相同
调用nextInt(arg)/nextDouble(arg)方法产生**
A:int nextInt():返回int范围内的随机数
B:int nextInt(int n):返回[0,n) 范围内的随机数
Random ran = new Random();Integer x1 = ran.nextInt(20);Double x2 = ran.nextDouble(3.0);
3.使用System类中的currentTimeMillis()方法返回的long值取模运算,就可以将结果限制在一个范围内了
三种方法举例
package cn.math;import java.util.Random;public class RandomDemo { public static void main(String[] args) { /* * 方法1:使用java.lang.Math类自带的random方法 * 使用方法:(数据类型)(最小值+Math.random()*(最大值-最小值+1)) */ //例1.1:产生1-10之间的随机整数 System.out.println("~"+(int)(1+Math.random()*10)); //例1.2:产生5-8之间的随机整数 System.out.print("~"+(int)(5+Math.random()*(8-5+1))); //例1.3:产生100之内的随机整数(0~99) System.out.print("~"+(int)(Math.random()*100)); /* 2.使用java.util类中的Random类的nextInt(arg)/nextDouble(arg)方法产生 * 如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列, * 它们将生成并返回相同的数字序列。为了保证实现这种特性,我们为类Random指定了特定的算法。 * 为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。 * 但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。 */ //2.1带种子的构建方式(此种方式,无论程序运行多少次,返回结果都是一样的) //2.1.1 使用555L作为种子产生随机数 Random ran = new Random(555L); int i = 3; while(i--!=0){ System.out.print("~"+ran.nextInt()); } //结果:~-1367481220~292886146~-1462441651 System.out.println("-------------------------"); //2.1.2 同样使用555L作为种子产生随机数 Random random = new Random(); random.setSeed(555L); for (int i1 = 0; i1 < 50; i1++) { System.out.print("~"+random.nextInt()); } //结果:~-1367481220~292886146~-1462441651 ,与上面产生的结果相同(关键是种子要一样) //2.2不带种子的构建方式(此种方式将会返回随机的数字,每次运行结果都不一样) Random ran2 = new Random(); int i2 = 30; while(i2--!=0){ System.out.print("~"+ran2.nextInt()); } //3 使用System类中的currentTimeMillis方法产生50以内的随机数 long r1 = System.currentTimeMillis(); System.out.println(r1%50); }}
0 0
- java基础--16.java.util.Random类--产生随机数的N种方法
- java中的随机数产生方式,random()方法和Random类
- 生成随机数方法:java.util.Random.nextInt(int n)方法实例
- java 学习笔记 随机数产生的两种办法Math.random()和Random类
- java 中Random类产生随机数
- 使用Java中的Random类产生随机数
- 随机数的困惑(java.util.Random/Math.Random()
- java产生随机数的方法。
- java产生随机数的方法
- java产生随机数的方法
- Java 产生随机数的方法
- Java产生随机数的方法
- JAVA随机数的产生方法
- java产生随机数的方法
- JAVA基础MATH类的应用(Random产生自己想要的范围类的随机数解决方案)
- java.util.Random 和java.lang.Math的random方法
- 随机数 java.util.Random与java.lang.Math.Random()-Java
- Random:产生随机数的类
- Web前端面试指导(二十九):Ajax 是什么? 如何创建一个Ajax?
- 线性可分支持向量机(二)
- 文章标题
- C语言练习
- 算法入门(3)——贪心算法
- java基础--16.java.util.Random类--产生随机数的N种方法
- 求33矩阵的对角线元素和
- 排序算法
- uestc 250 windy数(数位dp)
- 灵魂深处的种族歧视
- 【C语言】有一个字符串是:student a am i.现编写代码使其输出为i am a student.(要求其空间复杂度为O(1))
- 选择排序与归并排序
- 几种链表的概念
- matlab读取txt文件(导入学生成绩)