Skip to content

Latest commit

 

History

History
30 lines (20 loc) · 2.16 KB

20241208.md

File metadata and controls

30 lines (20 loc) · 2.16 KB

一些习题

1

用割圆术逼近圆周率 $\pi$ 的方法如下:

取单位圆,作其内接正六边形,并重复以下步骤:

  1. 连接圆心与正 $n$ 边形每条边终点并延长,交圆于 $n$ 个新的点;将原 $n$ 边形各顶点和这 $n$ 个新的点顺次连接,便形成了正 $2n$ 边形。
  2. 若原正 $n$ 边形边长 $A_n$(注意到 $A_6=1$):将正 $n$ 边形分成 $n$ 个等腰三角形,可求出三角形底边上的高 $H_n$
  3. 利用 $A_n$$H_n$ 可求出正 $2n$ 边形比正 $n$ 边形多出来的面积,进而求出正 $2n$ 边形的面积,它是 $\pi$ 的近似值。
  4. 利用 $1-H_n$$A_n$,可求出 $A_{2n}$,以供下次循环使用。

设计程序,打印出单位圆内接正 $6\cdot 2^n(n=0, 1, 2, ...)$ 边形的面积。不出意外的话,它应该越来越接近 $\pi$

2

在某款游戏中,攻击可能给敌人施加某种状态。是否施加状态由按一定规则运作的一些计时器(浮点类型对象)和计数器(整数类型对象)共同决定。规则如下:

  1. 每种攻击类型的计时器和计数器相互独立。
  2. 初始时刻,重置所有计数器为 2;重置所有计时器为 2.5,随后计时器随时间推移连续增加,每秒增加 1
  3. 当进行某类型攻击时:
    1. 若该类型攻击的计数器为 2,则重置该计数器为 0;否则该计数器自增 1
    2. 如果该类型的攻击的计时器 $\ge 2.5$,则重置其为 0.0;
    3. 当且仅当 3.1 3.2 中的条件得到满足时,施加状态。

例:某角色在 0s 0.8s 1.6s 2.4s 3.2s 进行同类型攻击,则第一次,第四次和第五次攻击施加状态。

(1)如果只使用特定类型的攻击,设计程序实现功能:按顺序输入每次攻击的时间,判断这些攻击是否施加状态。 (2)该游戏共有四种类型的攻击,用 'A''Z''E''Q' 表示。设计程序实现功能:按顺序输入攻击类型和攻击时间,判断这些攻击是否施加状态。需要设计错误处理,合理地处理攻击类型不合法(比如输入 'B' 作为攻击类型)的情况。