【时事篇-04】兔子繁殖问题(斐波那契数列)

背景

兔子繁殖与斐波那契数列

AI写的答案

'''
'兔子繁殖问题
题:有一对兔子,从出生后的第三个月起,每个月都生一对兔子,小兔子再长三个月后每个月又生一对兔子!假如兔子都不死,请问每个月的兔子的数量是多少对? 
'''



def count_rabbits(months):
    if months <= 0:
        return 0
    elif months == 1 or months == 2:
        return 1

    rabbits = [0] * (months + 1)
    rabbits[1] = 1
    rabbits[2] = 1

    for i in range(3, months + 1):
        rabbits[i] = rabbits[i-1] + rabbits[i-2]

    return rabbits

# 计算1-12个月每个月的兔子数量
all=[]
rabbit_counts = count_rabbits(12)
for month, count in enumerate(rabbit_counts[1:], start=1):
    all.append(count)
    
    print("第{}个月的小鸡数量为:{}".format(month, count))
print("一年里一对种兔繁衍总数量为:{}".format(sum(all)-1))

# 第1个月的小鸡数量为:1
# 第2个月的小鸡数量为:1
# 第3个月的小鸡数量为:2
# 第4个月的小鸡数量为:3
# 第5个月的小鸡数量为:5
# 第6个月的小鸡数量为:8
# 第7个月的小鸡数量为:13
# 第8个月的小鸡数量为:21
# 第9个月的小鸡数量为:34
# 第10个月的小鸡数量为:55
# 第11个月的小鸡数量为:89
# 第12个月的小鸡数量为:144

# 一年里一对种兔繁衍总数量为:375

同样的方法问AI 写一个小鸡1月产蛋的代码

# # '''
'''小鸡繁殖问题
题:有一对小鸡,从出生后的第1个月起,每个月都生一对小鸡,小小鸡再长1个月后每个月又生1对小鸡!假如小鸡都不死,请问每个月的小鸡的数量是多少对? 
'''



def count_chicks(months):
    if months <= 0:
        return 0

    chicks = [0] * (months + 1)
    chicks[1] = 1

    for i in range(2, months + 1):
        chicks[i] = chicks[i-1] + 1

        if i > 1:
            chicks[i] += chicks[i-2]

    return chicks

# 计算1-12个月每个月的小鸡数量
chick_counts = count_chicks(12)
for month, count in enumerate(chick_counts[1:], start=1):
    print("第{}个月的小鸡数量为:{}对".format(month, count))

#   
# 第1个月的小鸡数量为:1对
# 第2个月的小鸡数量为:2对   
# 第3个月的小鸡数量为:4对   
# 第4个月的小鸡数量为:7对   
# 第5个月的小鸡数量为:12对  
# 第6个月的小鸡数量为:20对  
# 第7个月的小鸡数量为:33对  
# 第8个月的小鸡数量为:54对  
# 第9个月的小鸡数量为:88对  
# 第10个月的小鸡数量为:143对
# 第11个月的小鸡数量为:232对
# 第12个月的小鸡数量为:376对

其他写法

Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)_python1.兔子繁殖问题。 设有一对新生的兔子,从第4个月开始他们每个月月初都生一-CSDN博客文章浏览阅读3.9k次,点赞7次,收藏6次。设有一对新生的兔子从第3个月开始他们每个月月初都生一对新兔子,新生的兔子从第3个月开始又每个月月初生一对兔子,求n个月后兔子的总对数为什么n要-1我们假设初始的这一对兔子是0个月过1个月长1个月,长了2个月后,第3个月月初,它才2个月吧,就可以生兔子了新生的一对兔子是月初出生的,所以过完那个月就一个月大了,再过1个月就可以生兔子了所以初始化的时候是没有一个月的兔子的,需要过一个月才有,所以我们就减少一次循环注意我这也只是推理,并没有去根据规律去做def f(n): # 一个月的_python1.兔子繁殖问题。 设有一对新生的兔子,从第4个月开始他们每个月月初都生一https://blog.csdn.net/hmh4640219/article/details/112977312?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%85%94%E5%AD%90%E7%B9%81%E6%AE%96Python&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-112977312.142%5Ev99%5Epc_search_result_base3&spm=1018.2226.3001.4187python求兔子数量_用python递归求兔子总量-CSDN博客文章浏览阅读1.8k次。用python求兔子数量,斐波那契数列_用python递归求兔子总量https://blog.csdn.net/ki_zhende/article/details/122246044?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170634050416800215049679%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170634050416800215049679&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-13-122246044-null-null.142^v99^pc_search_result_base3&utm_term=%E5%85%94%E5%AD%90%E7%B9%81%E6%AE%96Python&spm=1018.2226.3001.4187Python算法学习一:斐波那契数列(兔子问题)_兔子数列python-CSDN博客文章浏览阅读6.3k次。斐波那契数列算法斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。简单的理解就是从第三项开始每一项都是前两项之和。f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)例题:剑指offer斐波那契数列大家都知道斐波那契数列,现在要求输入一个..._兔子数列pythonhttps://blog.csdn.net/weixin_43265609/article/details/104616053?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170634030616800180629595%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170634030616800180629595&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-24-104616053-null-null.142^v99^pc_search_result_base3&utm_term=%E5%85%94%E5%AD%90%E7%B9%81%E6%AE%96Python&spm=1018.2226.3001.4187

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值