在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),再判断是否=0boolean randomBoolean = rand.nextInt(2) == 0; // 0为false,1为trueSystem.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的学习生活,除去这些,其他的关于文学方面的东西寡淡的可怕。
虽然在学校图书馆读过几本书,也有很深的感悟,但这些远远不够。
以前的我觉得每天泡在图书馆里就是人生一大享受,在之后乃至现在的我都觉得每天泡在工作室里才是最大的享受,最纯学的那一年,我和小组其他成员商议着晚上在工作室里睡觉,一睁眼就可以学习,简直太美了!
但实习阶段的我,睡觉,睡觉,睡觉。
我爱睡觉,我爱摆烂。
这不是好事,对,我要崛起!
嘻嘻,中秋去上海玩喽~~~~~~~~~~~~~~~~~啦啦啦啦啦啦啦啦啦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~