|
本帖最后由 天山草 于 2023-9-28 19:45 编辑
用递推方法分析:
在第 \(n\) 小时后,若 \(n\) 为偶数,则细菌数目为 \(a(n)=2 a(n-1)\);
若 \(n\) 为奇数,则细菌数目为 \(a(n)=a(n-1) - 2\);
于是可写出下面的计算程序:
- n = 0; a[0] = 7;
- Do[
- If[EvenQ[n], a[n] = 2 a[n - 1], a[n] = a[n - 1] - 2];
- Print[n, "----", a[n]];
- n++, {n, 1, 21}];
复制代码
计算结果为:
- 1----5
- 2----10
- 3----8
- 4----16
- 5----14
- 6----28
- 7----26
- 8----52
- 9----50
- 10----100
- 11----98
- 12----196
- 13----194
- 14----388
- 15----386
- 16----772
- 17----770
- 18----1540
- 19----1538
- 20----3076
- 21----3074
复制代码
这样就得到在第 21 小时后细菌数目为 3074 个。
如果 \(n\) 非常大,比如要计算第 500 小时后的细菌数,没有必要把 500 项全显示出来,可以只显示最后 5 项即可。此时只须改一下程序:
- n = 0; a[0] = 7;
- Do[If[EvenQ[n], a[n] = 2 a[n - 1], a[n] = a[n - 1] - 2];
- If[n > 495, Print[n, "----", a[n]]];
- n++, {n, 1, 500}];
复制代码
|
|