费氏数列怎么学?这些方法让你事半功倍!

天美租号

今天刷到一个讲“费氏”的视频,看着还挺有意思,我就上手试试。

我连这是啥都不知道,就看到一堆数字,说是符合某种规律。然后我就去搜下,原来这个叫“费氏数列”,说白,就是后面一个数,是前面两个数的和。这规律,看起来挺简单的。

我琢磨着,这玩意儿能干啥?视频里说,自然界里很多东西都符合这个规律,比如那个什么向日葵的花瓣,还有什么螺线的数目,都是按照这个数列长的。听着挺玄乎,不过咱也不懂,就当长见识。

费氏数列怎么学?这些方法让你事半功倍!

然后我就想,这东西能不能用代码写出来?毕竟咱是干这个的。网上说,可以用“递归”来搞。啥是递归?咱也不懂,反正就是说,一个东西能自己调用自己。听着有点绕,不过照着网上的例子,我也能葫芦画瓢写一个。

我先定一个小目标,比如就先算出前10个数。我先写一个简单的,就是如果 n 是 0 或者 1,就直接返回 n,要不然,就返回前两个数的和。大概就是这个意思:

  • n = 0 或 1 时,结果就是 n
  • n > 1 时,结果就是 (n-1) + (n-2)

费氏数列怎么学?这些方法让你事半功倍!

我试试,还真行!能跑出来结果!

然后我又想,这玩意儿能不能算个大的数?比如,算第100个?我一试,卡住!电脑风扇呼呼转,半天没反应。看来这个“递归”虽然写起来简单,但是算起来太费劲。

我又去搜搜,原来有个叫“动态规划”的东西能解决这个问题。听着挺高级,就是说,把算过的结果存起来,下次再算的时候,直接拿来用,就不用再算一遍。这法子

我又照着网上的例子,用“动态规划”的思路,重新写一个。这回再算第100个,嗖的一下就出来!看来这个“动态规划”还真厉害!

总结

今天折腾这个“费氏数列”,也算学点东西。知道啥是“递归”,啥是“动态规划”,还见识这个数列在自然界的神奇应用。虽然咱也不是搞科研的,但是解一下这些东西,感觉还挺有意思的。

费氏数列怎么学?这些方法让你事半功倍!

以后再遇到这种看起来挺复杂的问,我也知道该咋下手。先搞清楚规律,再想想咋用代码实现,遇到问题就去搜,总能找到解决的办法。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,72人围观)

还没有评论,来说两句吧...