在Java中获取随机数通常会使用java.util.Random
类或者Math.random()
方法
1.java.util.Random
java.util.Random
类用于生成伪随机数。
// 使用无参构造方法创建Random对象
Random rand = new Random();
// 生成一个[0, 100)范围内的随机整数
int randomInt = rand.nextInt(100);
System.out.println("[0, 100)范围内的随机整数: " + randomInt);
// 生成一个[min, max]范围内的随机整数
int min = 1;
int max = 10;
int randomIntRange = min + rand.nextInt(max - min + 1);
System.out.println("随机整数: " + randomIntRange);
// 生成一个随机的double值,范围在[0.0, 1.0)
double randomDouble = rand.nextDouble();
System.out.println("随机的double值: " + randomDouble);
// 生成一个[min, max]范围内的随机double值
double minDouble = 1.0;
double maxDouble = 10.0;
double randomDoubleInRange = minDouble + (maxDouble - minDouble) * rand.nextDouble();
System.out.println("随机double值: " + randomDoubleInRange);
//生成一个[min, max]范围内的随机byte值
//因为byte类型的范围是-128到127,需要对Random类生成的int类型随机数进行类型转换和范围调整,可以看到获取随机数步骤其实和double差不多
byte randomByte = (byte) (Byte.MIN_VALUE + rand.nextInt(Byte.MAX_VALUE - Byte.MIN_VALUE + 1));
System.out.println("范围内的随机byte值: " + randomByte);
// 生成[min, max)范围内的float值
float minFloat = 1.0f;
float maxFloat = 10.0f;
float randomFloatInRange = minFloat + (maxFloat - minFloat) * rand.nextFloat();
System.out.println("范围内的float值: " + randomFloatInRange);
//随机生成boolean值
//随机生成0或1(不包括2),再判断是否=0
boolean randomBoolean = rand.nextInt(2) == 0; // 0为false,1为true
System.out.println("随机生成boolean值: " + randomBoolean);
// Java 7及以上版本提供了这个方法
boolean randomBooleanNext = rand.nextBoolean();
System.out.println("随机生成boolean值: " + randomBooleanNext);
// 可以是任何long值
long randomLong = rand.nextLong();
// 生成[min, max]范围内的long值
long minLong = 1000L;
long maxLong = 999999999999L;
long range = (maxLong - minLong) + 1;
long randomLongInRange = minLong + (long) (rand.nextDouble() * range);
System.out.println("范围内的long值: " + randomLongInRange);
2.Math.random()
方法
Math.random()
方法用于生成一个大于等于0.0且小于1.0的随机double
值。这个方法不接受任何参数,并且每次调用时都会生成一个新的随机数。
// 生成一个[0.0, 1.0)范围内的随机double值
double randomDouble = Math.random();
System.out.println("范围内的随机double值: " + randomDouble);
// 生成一个[min, max]范围内的随机double值
double minDouble = 1.0;
double maxDouble = 10.0;
double randomDoubleInRange = minDouble + (maxDouble - minDouble) * Math.random();
System.out.println("范围内的随机double值: " + randomDoubleInRange);
// Math.random()不能直接用于生成随机整数,但可以通过类型转换和取整来实现
// 生成一个[0, max)范围内的随机整数(包括0,不包括max)
int maxInt = 100;
int randomInt = (int) (Math.random() * maxInt);
System.out.println("范围内的随机整数: " + randomInt);
// 生成一个[min, max]范围内的随机整数(包括min和max)
int minInt = 1;
int randomIntInRange = minInt + (int) (Math.random() * (maxInt - minInt + 1));
System.out.println("范围内的随机整数: " + randomIntInRange);
近日总结:继上次写的文字好像就是在鞭尸,这次变成了好像进入了无限的死循环。
我想,有了这段经历,我的毕业论文一定不会写的很差,毕竟有大佬指导呜呜呜。
经此一役,我的文字水平得到了极大的提升。
纵观以往,我似乎是初中的时候文字水平最高,再然后是高中,再然后是小学,再然后就是大学了。
试问大学教会了我什么,教会了我活到老,学到老,自律自律,每天早八晚11的学习生活,除去这些,其他的关于文学方面的东西寡淡的可怕。
虽然在学校图书馆读过几本书,也有很深的感悟,但这些远远不够。
以前的我觉得每天泡在图书馆里就是人生一大享受,在之后乃至现在的我都觉得每天泡在工作室里才是最大的享受,最纯学的那一年,我和小组其他成员商议着晚上在工作室里睡觉,一睁眼就可以学习,简直太美了!
但实习阶段的我,睡觉,睡觉,睡觉。
我爱睡觉,我爱摆烂。
这不是好事,对,我要崛起!
嘻嘻,中秋去上海玩喽~~~~~~~~~~~~~~~~~啦啦啦啦啦啦啦啦啦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~