Java系列文章目录
Write once,Runanywhere.🔥🔥🔥
随机数生成的几种方法
💥 💥 💥如果你觉得我的文章有帮助到你,请您点赞评论收藏并转发给你身边的朋友,得到你们支持就是我最大的动力!!!
💥 💥 💥
🚀🚀🚀 新的知识开始喽🚀🚀🚀
文章目录
1.通过Math类
1.1 JAVA库里的使用说明:
英文所描述的内容:从这个随机数生成器序列中返回下一个伪随机、均匀分布的双精度值,该值介于0.0和1.0之间。
nextDouble的一般约定是伪随机生成并返回一个双精度值,该双精度值(近似地)均匀地从0.0d(包括)到1.0d(不包括)范围内选取。
小结:
- 生成的数字类型是double类型
- 生成的数字范围是0.0(包括)~1.0(不包括)
1.2 使用方法:
1.2.1 生成浮点数[0.0,1.0)的浮点数: Math.random()
double rd = Math.random();
System.out.println(rd);
运行结果:
1.2.2 生成[min,max)的double类型的浮点数: (Math.random()*(max-min)+min)
生成大于等于min小于max的double型随机数;
生成大于等于min小于max的double型随机数;
double rd = (Math.random()*(10-1)+1);
System.out.println(rd);
运行结果:
1.2.3 生成整数,需要强制类型转换:(int) (Math.random()*(max-min)+min)
int rd = (int)(Math.random()*(10-1)+1);
System.out.println(rd);
运行结果:
2.通过Random类
2.1 我们直接看使用方法,看代码:
import java.util.Random;//导入的包
Random random = new Random();
int rd = random.nextInt(bound:101);// [0,100)
System.out.println(rd);
运行结果:
2.2注意随机数的生成种子
- 生成随机数,每次是不一样的,它是根据当前的时间戳来生成的(seed随着随机数在改变)
- 当
Random random = new Random();
括号里没有填写内容时,每次生成的随机数不同,但当括号里填写了一个数字时,这时每次都会根据这个数字(seed 种子)生成一个随机数,称之为伪随机。
这里需要说明的就是这个代码:
1.输入数字边界控制范围
int rd = random.nextInt(bound:101);// [0,100)
生成的数字范围是[0,101),左闭右开,所以在确定范围时需要用到数学加法类凑。
比如范围是[1,100]:int rd = random.nextInt(bound:100)+1;[0,99]–>[1,100]
比如范围是[50,100]:int rd = random.nextInt(bound:51)+50;[0,50]–>[50,100]
2.未输入数字控制范围
int rd = random.nextInt();
会随机生成int范围的数字
int rd = random.nextInt();
不同次的运行结果:
3.猜数字游戏
3.1 使用Math类实现
public static void main(String[] args) {
Random random = new Random();
double rd = (Math.random()*(101-1)+1);
System.out.println(rd);//相当于作弊,提前知道数字
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的数字");
int n = sc.nextInt();
if(rd==n){
System.out.println(n+"猜对了");
break;//猜对了就跳出循环
}
else if(n<rd){
System.out.println("猜小了");
}
else{
System.out.println("猜大了");
}
}
}
3.2 使用Random类实现
public static void main(String[] args) {
Random random = new Random();
int rd = random.nextInt(101);//[0,100)
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的数字");
int n = sc.nextInt();
if(rd==n){
System.out.println(n+"猜对了");
break;//猜对了就跳出循环
}
else if(n<rd){
System.out.println("猜小了");
}
else{
System.out.println("猜大了");
}
}
}
🌏🌏🌏今天的你看懂这里又学到了很多东西吧🌏🌏🌏
🌔 🌔 🌔下次见喽🌔 🌔 🌔