Random⽤法及常⽤⽅法总结
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.Boolean());
}
nextint()方法System.out.println("******************************");
for(int i=0;i<10;i++){
System.out.Boolean());
}
}
}
运⾏结果:
第⼀次运⾏第⼆次运⾏
false true false false true true false false false true false true false false false false
false
false
true
****************************** true
false
true
false
true
false
false
true
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.Double());
}
System.out.println("******************************");
for(int i=0;i<10;i++){
System.out.Double());
}
}
}
运⾏结果:
第⼀次运⾏第⼆次运⾏
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
0.0158999598344690130.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.Int());
}
System.out.println("******************************");
for(int i=0;i<10;i++){
System.out.Int());
}
}
}
运⾏结果:
第⼀次运⾏第⼆次运⾏
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.Int(100));
}
System.out.println("******************************");
for(int i=0;i<10;i++){
System.out.Int(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.Int(100));
}
System.out.println("******************************");
random.setSeed(1234);
for(int i=0;i<10;i++){
System.out.Int(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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论