王大法上台阶问题

电影《少年班》里老师给王大法出了一个问题,题目是:有20级台阶每次可以上1级或2级,一共有多少种上法?

如果按照排列组合分类的方法我是没分出来,如果按照类似动态规划的方法就很好解了。

如果有n级台阶,设总上法有f(n),那第一脚上1级,剩下的n-1级台阶的情况下就是f(n-1)种上法,如果第一脚上2级,剩下n-2级台阶就是f(n-2)种上法,并且第一脚上1级和第一脚上2级的方法肯定不重复,并且第一脚只能上1级或2级,所以

f(n) = f(n-1) + f(n-2)

这就是斐波那契数列啊,f(1)=1,f(2)=2

f(20)=10946

通项公式的解法可以参考下面的地址,解法很有创意,用到组合数学的东西,学习了下相关的知识终于明白了。

https://my.oschina.net/Tsybius2014/blog/688865?p=1

组合数学很有趣,又打开一个新世界。

类似的如果每次可以上1级或2级或3级,那

f(n) = f(n-1) + f(n-2) + f(n-3)

如此类推,通项公式也依次类推也可以做,只是要解高次方程。

posted on   litandy  阅读(1941)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示