题意整理。

  • 要求生成一个[1,6]之间的随机整数。

方法一(利用random的nextInt()方法)

1.解题思路

  • 首先通过random.nextInt(6)获取[0,6)之间的随机整数,即[0,5]之间的随机整数。
  • 然后加1,即可得到[1,6]之间的随机整数。

动图展示:

alt

2.代码实现

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);
            
            //通过random.nextInt(6)获取[0,6)之间的随机整数,然后加1,即可得到[1,6]之间的随机整数
            System.out.println(random.nextInt(6)+1);

        }
    }

}

3.复杂度分析

  • 时间复杂度:只需调用一次Random的nextInt(),所以时间复杂度为O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)