Random用法及常用方法总结
来源:互联网 发布:mac word转pdf原页面 编辑:程序博客网 时间:2024/05/23 07:25
Random类(java.util)
Random类产生随机数的算法是一种伪随机算法,在进行产生随机数时,随机算法通过起源数字(seed)或叫种子数进行一系列的变换,产生随机数。所以相同种子数在相同次数产生的随机数是相同的。
1 构造方法
(1)public Random()
该构造方法会使用系统当前时间的相关数字作为产生随机数的种子数并利用该种子数产生随机数;
(2)public Random(long seed)
该构造方法允许使用者自定义一个种子数并利用该种子数产生随机数,需要注意的是,种子数与产生随机数的大小或者范围无关;
示例:
Random random = new Random(); Random randomseed = new Random(1234);
2 常用方法
Random类中的方法生成的随机数是均匀分布的,即区间内所有数字出现的几率相等。
(1)boolean nextBoolean()
该方法用于生成随机的boolean值,即随机生成true或者false;
示例:
import java.util.Random;public class Practice08 { public static void main(String[] args){ Random random = new Random(); Random randomseed = new Random(1234); for(int i=0;i<10;i++){ System.out.println(random.nextBoolean()); } System.out.println("******************************"); for(int i=0;i<10;i++){ System.out.println(randomseed.nextBoolean()); } }}运行结果:
第一次运行第二次运行false
true
false
false
true
true
false
false
false
true
******************************
true
false
true
false
true
false
false
true
false
falsefalse
true
false
true
false
false
false
false
true
true
******************************
true
false
true
false
true
false
false
true
false
false
可以看出调用Random()方法时,两次运行产生的随机数是随机的,而调用Random(long seed)方法时,两次运行产生的十个随机数分别相等。
(2)double nextDouble()
该方法用于生成随机的double值,范围为[0,1.0),包含0但不包含1.0;
示例:
import java.util.Random;public class Practice08 { public static void main(String[] args){ Random random = new Random(); Random randomseed = new Random(1234); for(int i=0;i<10;i++){ System.out.println(random.nextDouble()); } System.out.println("******************************"); for(int i=0;i<10;i++){ System.out.println(randomseed.nextDouble()); } }}运行结果:
第一次运行第二次运行0.4968216373378379
0.5734949373550408
0.852019908272346
0.20984030302187273
0.494558093099853
0.5825247266138449
0.28886773288711476
0.21403791865578403
0.5555841783678891
0.5108997276326334
******************************
0.6465821602909256
0.9513577109193919
0.8575884598068334
0.45823330506267057
0.3359524025416939
0.20387478195313158
0.34690742873967684
0.617314071997303
0.9468595742485053
0.0158999598344690130.45977052333535995
0.47629177906094133
0.47446627537727315
0.8193334158480784
0.15775686431494962
0.27063984166744404
0.04724094155787517
0.6572915775899207
0.6461783009794345
0.7266385810244602
******************************
0.6465821602909256
0.9513577109193919
0.8575884598068334
0.45823330506267057
0.3359524025416939
0.20387478195313158
0.34690742873967684
0.617314071997303
0.9468595742485053
0.015899959834469013
可以看出调用Random()方法时,两次运行产生的随机数是随机的,而调用Random(long seed)方法时,两次运行产生的十个随机数分别相等。
(3)int nextInt()
该方法用于生成随机的int值;
示例:
import java.util.Random;public class Practice08 { public static void main(String[] args){ Random random = new Random(); Random randomseed = new Random(1234); for(int i=0;i<10;i++){ System.out.println(random.nextInt()); } System.out.println("******************************"); for(int i=0;i<10;i++){ System.out.println(randomseed.nextInt()); } }}
运行结果:第一次运行第二次运行2007915930
-822650973
-1946162266
-1747680144
1250932849
1518101712
1448991956
1020489311
-35838754
2064277798
******************************
-1517918040
1115789266
-208917030
1019800440
-611652875
1362132786
1968097058
-1933932397
1442904595
397902075-1309824681
-106227231
-1832307327
1208237010
-696335126
1855533443
-1890017889
119486610
-1620495240
1199312626
******************************
-1517918040
1115789266
-208917030
1019800440
-611652875
1362132786
1968097058
-1933932397
1442904595
397902075
可以看出调用Random()方法时,两次运行产生的随机数是随机的,而调用Random(long seed)方法时,两次运行产生的十个随机数分别相等。
(4)int nextInt(int bound)
该方法用于生成随机的int值,范围为[0,bound);
示例:
import java.util.Random;public class Practice08 { public static void main(String[] args){ Random random = new Random(); Random randomseed = new Random(1234); for(int i=0;i<10;i++){ System.out.println(random.nextInt(100)); } System.out.println("******************************"); for(int i=0;i<10;i++){ System.out.println(randomseed.nextInt(100)); } }}
运行结果:第一次运行第二次运行71
82
88
39
39
60
59
6
8
14
******************************
28
33
33
20
10
93
29
49
97
3754
91
91
96
55
36
99
7
85
33
******************************
28
33
33
20
10
93
29
49
97
37
可以看出调用Random()方法时,两次运行产生的随机数是随机的,而调用Random(long seed)方法时,两次运行产生的十个随机数分别相等。
(5)void setSeed(long seed)
该方法用于给没有设置种子数的对象设置种子数;
示例:
import java.util.Random;public class Practice08 { public static void main(String[] args){ Random random = new Random(); for(int i=0;i<10;i++){ System.out.println(random.nextInt(100)); } System.out.println("******************************"); random.setSeed(1234); for(int i=0;i<10;i++){ System.out.println(random.nextInt(100)); } }}运行结果:第一次运行第二次运行24
63
87
68
31
77
34
90
23
36
******************************
28
33
33
20
10
93
29
49
97
376
16
80
39
14
43
27
73
1
59
******************************
28
33
33
20
10
93
29
49
97
37
- Random用法及常用方法总结
- Math,Arrays,Random常用方法总结
- Python Random函数常用方法及示例
- 常用的工具类及方法:System、Math、Random、Arrays
- Java中Math类常用方法总结 + Random类与Math类小结合
- 01-IOS入门及random()用法
- Java 之Random用法及实例
- request对象分析及常用方法总结
- SharePoint 2010 -- 常用技巧及方法总结
- Hibernate常用接口及方法总结
- ListView常用方法及问题解决办法总结
- servlet常用属性及方法总结
- Handler总结常用方法及常见问题
- String 及 StringBuffer常用方法总结
- java线程常用方法及概念总结
- JavaScript基础知识及常用方法总结
- 常用类及方法总结 JAVA
- Java API常用类及方法总结
- 上班族训练安排。
- 根据资源路径加载ZIP压缩包中指定的资源
- 执行shell脚本错误
- SDUT 1488 数据结构实验:连通分量个数
- MFC中ASSERT()和VERIFY()区别
- Random用法及常用方法总结
- Java多线程----java 对象锁
- JQuery(3)
- Android术语的名词解释
- Ghost
- SSM整合的配置文件详解
- 【菌菌】【C语言MOOC】第一周 逆序的三位数(10分)
- linux df du命令
- python 之 import this 设计哲学