题目的主要信息:

  • 每次运行程序时,输入一个随机种子,产生一个[1,6][1,6]之间的随机整数

具体做法:

输入的随机种子不是随机数,但是会用该随机种子进行算法。因此在Random类中seed是一个参数,用于生成伪随机数,因为范围是1-6,但是伪随机数生成是0~n-1,因此末尾需要再加1.

alt

import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int seed = scanner.nextInt(); //输入随机数种子
            Random random = new Random(seed); //用随机种子进行随机算法
            System.out.println(random.nextInt(6) + 1); //随机生成1-6地数字
        }
    }

}

复杂度分析:

  • 时间复杂度:O(1)O(1),直接计算,常数时间
  • 空间复杂度:O(1)O(1),无额外空间,常数空间