数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3207|回复: 5

细菌7个,第1小时减2,第2小时乘2,第3小时减2,第4小时乘2,…,第21小时后有几个?

[复制链接]
发表于 2023-9-28 01:58 | 显示全部楼层 |阅读模式


請問大家

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2023-9-28 11:52 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-28 12:30 | 显示全部楼层
請問是否有遞迴的解法嗎
回复 支持 反对

使用道具 举报

发表于 2023-9-28 12:39 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2023-9-28 19:33 | 显示全部楼层
本帖最后由 天山草 于 2023-9-28 19:45 编辑

用递推方法分析:
在第 \(n\) 小时后,若 \(n\) 为偶数,则细菌数目为 \(a(n)=2 a(n-1)\);
若 \(n\) 为奇数,则细菌数目为 \(a(n)=a(n-1) - 2\);
于是可写出下面的计算程序:
  1. n = 0; a[0] = 7;
  2. Do[
  3.   If[EvenQ[n], a[n] = 2 a[n - 1], a[n] = a[n - 1] - 2];
  4.   Print[n, "----", a[n]];
  5.   n++, {n, 1, 21}];
复制代码

计算结果为:
  1. 1----5
  2. 2----10
  3. 3----8
  4. 4----16
  5. 5----14
  6. 6----28
  7. 7----26
  8. 8----52
  9. 9----50
  10. 10----100
  11. 11----98
  12. 12----196
  13. 13----194
  14. 14----388
  15. 15----386
  16. 16----772
  17. 17----770
  18. 18----1540
  19. 19----1538
  20. 20----3076
  21. 21----3074
复制代码

这样就得到在第 21 小时后细菌数目为 3074 个。

如果 \(n\) 非常大,比如要计算第 500 小时后的细菌数,没有必要把 500 项全显示出来,可以只显示最后 5 项即可。此时只须改一下程序:
  1. n = 0; a[0] = 7;
  2. Do[If[EvenQ[n], a[n] = 2 a[n - 1], a[n] = a[n - 1] - 2];
  3.   If[n > 495, Print[n, "----", a[n]]];
  4.   n++, {n, 1, 500}];
复制代码

回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-29 01:31 | 显示全部楼层
謝謝您 我想看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-21 18:29 , Processed in 0.075134 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表