课后作业

一、方法与随机数

本节课重点学习了 Java 方法相关知识。方法能够将具备独立功能的代码块封装起来,在需要使用的时候直接调用,既提升代码可读性,也便于代码复用。

  1. Random 类

通过 TestRandom 示例程序,我掌握了 Random 类的常用 API,包括nextBoolean()、nextDouble()、nextInt()、nextLong()等。其中nextInt(n)能够生成0~n‑1范围内的整数。比如模拟掷骰子,就可以这样写:

int number = random.nextInt(6) + 1;
TestSeed 案例让我理解了 Random 生成的属于伪随机数。**相同种子会得到一模一样的随机序列,种子不同则序列不一样**。如果把系统当前时间作为种子,程序每次运行就会输出不一样的随机结果。
 二、动手动脑
1. 手动实现随机数发生器
参照课件里的线性同余算法,完成自定义随机数生成器,公式如下:
\(x_{n+1} = (a \times x_n + c) \bmod m\)
参数取值:
\(m = 2^{31}-1\),\(a = 16807\),\(c = 0\)
编写方法,输出 1000 个随机整数:
public static void generateRandomNumbers(int count) {
    long modulus = 2147483647L;
    long multiplier = 16807L;
    long increment = 0L;
    long seed = 100L;
    for (int i = 0; i < count; i++) {
        seed = (multiplier * seed + increment) % modulus;
        System.out.print(seed + "\t");
        if ((i + 1) % 10 == 0) {
            System.out.println();
        }
    }
}
以前使用随机数都是直接调用系统现成方法,这次手动根据数学公式实现随机数,让我对随机数底层生成逻辑有了更加深刻的理解。
 2. 理解方法重载
学习 MethodOverload 示例后,我了解到方法重载:多个方法可以共用同一个方法名,只需要方法的参数列表存在区别即可。
示例:
public static void test(int a){}
public static void test(double a){}
posted @ 2026-10-08 20:02  wangcoders  阅读(3)  评论(0)    收藏  举报