课后作业1

一、动手动脑问题

  1. 随机数生成:按指定算法(Modulus=2³¹-1、Multiplier=16807、C=0,公式$x_{n+1}=(a x_n + c) \mod m$),初始化Seed后循环生成1000个随机整数,注意数据类型避免溢出。
  2. 方法重载:分析MethodOverload类,其含两个square方法(参数int/double),体现“方法名同、参数不同”的重载特性;JDK中System.out.println()也有多类重载,适配不同数据类型输出。
  3. 递归应用:以n!为例,递归公式$ f(n)=n\times f(n-1)$,结束条件n=1/0时返回1;对比递推(循环从1算至n),递归逻辑简洁但可能栈溢出,递推效率高无溢出风险,按需选择。
    二、课后实验性问题
  4. 大数字处理:CalculateN程序中int/long类型存阶乘易溢出,改用BigInteger类,通过其multiply方法递归计算n!,解决大整数运算问题。
  5. 浮点数比较:double类型存浮点数有精度误差,直接用“==”可能误判,需比较两数差值绝对值是否小于1e-10等极小值来判断相等。
  6. 四则运算程序
    • 阶段1:用随机数生成2个运算数和1个运算符(除法保证整除、减法保证非负),循环生成30题。
    • 阶段2:用集合存题目防重复,按规则限制运算(乘法结果<1000等);写答题方法判对错、统计正确率;用线程实现倒计时,超时未答算错题。
posted @ 2025-10-08 17:14  风夏风夏  阅读(10)  评论(0)    收藏  举报