产生随机数的三种方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
产⽣随机数的三种⽅式1. java.util.Random
java.util.Random类提供了以下产⽣随机数的⽅法:
(1) 通过Random() 构造⽅法实例化的对象产⽣随机数
Random r=new Random();
特点:每次运⾏产⽣的随机数都不⼀样。
(2) 通过Random(long seed) 构造⽅法实例化的对象产⽣随机数
Random r=new Random(long seed);
特点:seed相同产⽣的随机数相同,不同seed之间产⽣的随机数也不同。
举例:
public void testRandom(){
Random r=new Random();
Random r5=new Random(5);
Random r10=new Random(10);
List<Integer> list=new ArrayList<Integer>();
list.clear();
System.out.println("1. 利⽤Random()构造函数产⽣的随机数:");
for(int i=0;i<10;i++) {
list.add(r.nextInt(100));
}
System.out.println(list);
System.out.println("");
list.clear();
System.out.println("2. 利⽤Random(5)构造函数产⽣的随机数:");
for(int i=0;i<10;i++) {
list.add(r5.nextInt(100));
}
System.out.println(list);
System.out.println("");
list.clear();
System.out.println("3. 利⽤Random(10)构造函数产⽣的随机数:");
for(int i=0;i<10;i++) {
list.add(r10.nextInt(100));
}
System.out.println(list);
}
运⾏结果:
第⼀次运⾏上述代码的结果如下:
第⼆次运⾏上述代码的结果如下:
第三次运⾏上述代码的结果如下:
由以上三次运⾏的结果不难发现:
1) 利⽤Random() 构造函数实例化的对象产⽣的随机数每次都不⼀样。
2) 利⽤Random(long seed) 构造函数实例化的对象产⽣的随机数每次都⼀样。
3) seed即种⼦数,不同seed之间产⽣的随机数也不同。
由此可见:虽然说是随机数,但是也不是随机产⽣的,还是按照某种算法⼀步步执⾏产⽣的数,所以才会有种⼦数不变在不同时刻产⽣的值⼀样的结论。
2. Math.random()
Math.random() 产⽣的是[0,1.0)的随机⼩数。
举例:
public void testMathRandom(){
System.out.println("利⽤Math.random()产⽣的随机数:");
for(int i=0;i<10;i++) {
System.out.println(Math.random());
}
}
运⾏结果:。