首页 飞桨领航团 帖子详情
【AI达人养成营】斐波那契数列知识总结
收藏
快速回复
飞桨领航团 文章AI达人创造营 305 0
【AI达人养成营】斐波那契数列知识总结
收藏
快速回复
飞桨领航团 文章AI达人创造营 305 0

1.首先搞明白作业需求逻辑。

2.理解斐波那契数列。

3.网上例子很多,要搞明白为什么直接计算余数往往比先算出原数再取余简单,要解析时间复杂度 O(N)、空间复杂度 O(1)的概念。

4.求斐波那契数列某一项具体的值。要考虑数值过大可能是测试用例的输入很大导致的,列表中数据太多导致内存超限;原来使用append()方法构建一个斐波那契数列时,用一个数组存放它,随着n值的增大,数组占的内存也越来越大。

4.由于 dp 列表第 i 项只与第 i−1 和第 i−2 项有关,因此只需要初始化三个整形变量 sum, a, b ,利用辅助变量 sum 使 a,b 两数字交替前进即可,所指的n就是前两项的和。n大于2时,数组内只保留n的前两项, 前两项相加得到下一项的值,组整体后移,将运行结果保存在第二个位置。

5.用到的公式:(a + b)mod x = ((a mod x) + (b mod x)) mod x
公式中的a和b可以看成斐波那契的 Fn-1 和 Fn-2,这样就不需要对最终的Fn求余,只需要对每一步中的小斐波那契数求余即可。

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户