Java中关于随机数的生成,可以调用Math类中的Math.random()方法生成一个 [ 0.0, 1.0)的伪随机数,通过放缩来生成其它范围内的数字。
另一个方法是通过Random类定义一个随机对象:
import java.util.Random; // 导包
Random r = new Random(); // 创建,对象r理解为一个“随机数生成器”
int a = r.nextInt(100); // 使用
上面的程序中,返回一个伪随机数给变量a,它是取自此随机数生成器序列的 [0,100)之间均匀分布的 int 值。
除了int还有更多返回值类型如:
方法 | 随机数 |
---|---|
nextDouble() | 均匀分布 [0.0,1.0) double类型 |
nextFloat() | 均匀分布 [0.0,1.0) float类型 |
nextGaussian() | 高斯分布 [0.0,1.0) double类型 |
nextBoolean() | 均匀分布 [true,false] boolean类型 |
… | … |
import java.util.Random;
import java.util.Scanner;
public class Randomdemo {
public static void main(String[] args) {
Random r = new Random();
int a = r.nextInt(100) + 1; // [0,100)+1=[0,99]+1=[1,100]
System.out.println("请输入1~100间的一个猜测");
int chance = 12;
for (int i = 0; i < chance; i++) {
Scanner sc = new Scanner(System.in);
int guess = sc.nextInt();
if (guess == a) {
System.out.println("恭喜你猜对啦!");
break;
} else if (guess > a) {
System.out.println("你猜的数大了,还剩"
+ (chance - i - 1) + "次机会,请继续输入");
} else {
System.out.println("你猜的数小了,还剩"
+ (chance - i - 1) + "次机会,请继续输入");
}
}
}
}
/*
结果:
请输入1~100间的一个猜测
60
你猜的数大了,还剩11次机会,请继续输入
30
你猜的数小了,还剩10次机会,请继续输入
50
你猜的数小了,还剩9次机会,请继续输入
55
恭喜你猜对啦!
*/