Skip to content

==Math.Randown()==————>产生[0.0,1.0)区间的随机数

1 如何产生一个随机数

生成随机数的功能,其实 Java已经给我们提供了,在JDK中提供了一个类叫做Random,我们只需要调用Random这个类提供的功能就可以了。

java
// 目标:掌握使用Random生成随机数的步骤。
// 1、导包。import java.util.Random; (idea会自动完成)
import java.util.Random;
public class RandomDemo1 {
    public static void main(String[] args) {
        // 2、创建一个Random对象,用于生成随机数。
        Random r = new Random();
        // 3、调用Random提供的功能:nextInt得到随机数。
        for (int i = 1; i <= 20; i++) {
            int data = r.nextInt(10); // 0 - 9
            System.out.println(data);
        }
    }
}

2 猜数字小游戏

各位同

学,接下来我们通过一个案例把前面的流程控制、跳转语句、随机数综合运用一下;

如果能把这个案例写出来,说明你对今天的知识点掌握得挺好了。

java
需求:
	随机生成一个1-100之间的数据,提示用户猜测,猜大提示过大,猜小提示过小,直到猜中	  结束游戏

分析:
	1.先随机生成一个1-100之间的数据。
		谁可以帮你生成随机数啊? 是不是要用到Random?
		
	2.定义一个死循环让用户可以一直猜测。
		用户猜的数据从哪里来啊? 是不是要用到Scanner?

	3.在死循环里,每次让用户录入的数据和随机数进行比较
		如果比随机数大:提示猜大了
		如果比随机数小:提示猜小了
		如果和随机数相同:提示恭喜你猜中了
java
import java.util.Random;
import java.util.Scanner;

public class RandomTest2 {
    public static void main(String[] args) {
        // 1、随机产生一个1-100之间的数据,做为中奖号码。
        Random r = new Random();
        int luckNumber = r.nextInt(100) + 1;

        // 2、定义一个死循环,让用户不断的猜测数据
        Scanner sc = new Scanner(System.in);
        while (true) {
            // 提示用户猜测
            System.out.println("请您输入您猜测的数据:");
            int guessNumber = sc.nextInt();

            // 3、判断用户猜测的数字与幸运号码的大小情况
            if(guessNumber > luckNumber){
                System.out.println("您猜测的数字过大~~");
            }else if(guessNumber < luckNumber){
                System.out.println("您猜测的数字过小~~");
            }else {
                System.out.println("恭喜您,猜测成功了,可以买单了~~");
                break; // 结束死循环
            }
        }
    }
}

3 Randown的GPT解释

java.util.Random 是 Java 标准库中的一个类,用于生成伪随机数。它提供了更灵活和控制性更强的随机数生成方式,相比 Math.random() 更常用。

  1. nextInt(): 生成一个随机整数,范围取决于 int 类型的取值范围。

  2. nextInt(int n): 生成一个 [0, n) 范围内的随机整数。

  3. nextLong(): 生成一个随机长整数,范围取决于 long 类型的取值范围。

  4. nextDouble(): 生成一个 [0.0, 1.0) 范围内的随机双精度浮点数。

  5. nextBoolean(): 生成一个随机布尔值,可能是 truefalse

  6. nextFloat(): 生成一个 [0.0, 1.0) 范围内的随机单精度浮点数。

  7. nextGaussian(): 生成一个服从高斯分布的随机双精度浮点数。

  8. setSeed(long seed): 设置随机数生成器的种子,用于确定随机数序列。通过相同的种子可以生成相同的随机数序列,用于可重复的随机数生成。

  9. nextBytes(byte[] bytes): 生成随机字节数组,填充到指定的字节数组中。

以下是如何使用 Random 类生成随机数的基本示例:
java
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // 创建一个 Random 对象
        Random random = new Random();

        // 生成随机整数
        int randomNumber = random.nextInt(); // 随机整数范围取决于 int 类型的取值范围
        System.out.println("随机整数:" + randomNumber);

        // 生成指定范围的随机整数
        int min = 1;
        int max = 100;
        int randomInRange = random.nextInt(max - min + 1) + min;
        System.out.println("指定范围内的随机整数:" + randomInRange);

        // 生成随机双精度浮点数(0.0 到 1.0 之间)
        double randomDouble = random.nextDouble();
        System.out.println("随机双精度浮点数:" + randomDouble);

        // 生成随机布尔值
        boolean randomBoolean = random.nextBoolean();
        System.out.println("随机布尔值:" + randomBoolean);
    }
}

评论区

欢迎留言、补充或勘误。

xiaoba.blog