Fibonacci趣题

打怪兽

在北航OJ新手区游荡遇到了这个题。https://biancheng.love/problem/10/index

某一天遇到了一个怪兽,它会不断打你,每次你可以选择刚它,也可以选择怂。然而连续刚两次可怜的你就会死。。。
问:怪兽打你n次,你总共有多少种策略?
n=1:刚,怂
n=2 刚怂,怂怂,怂刚
n=3 刚怂怂,刚怂刚,怂怂怂,怂怂刚,怂刚怂

咦貌似是传说中的Fib数列。
于是快速AC。事后回想起这个觉得不爽,为何是Fib数列?

证:
每次攻击要么是刚,要么是怂,连续刚两次就会死。
所以如果有幸能抗到第n+1次攻击,前面的肯定是没有连续刚的。

  • 如果上一次是刚,下一次肯定是怂。
  • 如果上一次是怂,下一次爱刚刚,爱怂怂。

所以啊,下一次敢刚肯定是上一次怂了。下一次想怂就怂。
于是这样:g表示刚,s表示怂。

f(n)=g(n)+s(n)
g(n+1)=s(n)
s(n+1)=f(n)

也就是 f(n+1)=g(n+1)+s(n+1)=s(n)+f(n)=f(n1)+f(n)
于是Fib数列的证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值