第二季终结篇:活过,爱过,写过
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

“活过,爱过,写过。”这是法国大作家司汤达为自己写下的墓志铭。

今天的罗辑思维微信60秒语音,以司汤达的《红与黑》为例,说了一句话:明明知道一大堆知识点,可是对这些知识点也是一无所知。

你知道“斐波纳契数列”吗?

Description:

I love Fibonacci numbers in general, but I must admit I love some more than others.

I would like for you to write me a function that when given a number (n) returns the n-th number in the Fibonacci Sequence.

For example:

   nthFibo(4) == 2

Because 2 is the 4th number in the Fibonacci Sequence.

For reference, the first two numbers in the Fibonacci sequence are 0 and 1, and each subsequent number is the sum of the previous two.

菜鸟出招

function nthFibo(n) {
  // Return the n-th number in the Fibonacci Sequence
  var a = 0;
  var b = 1;
  var tmp = a + b;
  for (var i = 1;i < n;i++) {
    a = b;
    b = tmp;
    tmp = a + b;
  }
  return a;
}

偷师学艺

function nthFibo(n) {
  var Phi = (1 + Math.sqrt(5))/ 2;
  return Math.round((Math.pow(Phi, (n-1)) - Math.pow(Phi*-1, (n-1)*-1))/Math.sqrt(5))
}

关键字积累

  • sqrt
  • round
  • pow

菜鸟反思

高中的时候学过“斐波纳契数列”,却就像没学过一样,在生活中根本用不到。可到底是用不到呢?还是不知道从何用起?

就像我也学过“递归函数”,至今却从未用到,而在另一个前辈的手里,这道题也可以这么解:

function nthFibo(n) {
  if ( n == 1 ) { return 0; }
  if ( n == 2 ) { return 1; }
  return nthFibo(n-1)+nthFibo(n-2);
}

可见,我确实是不知啊!

评论
发表评论
6年前

@诸葛小觉 所以数学和编程密切相关呀!我记得相似三角形,有定义解法、性质解法、归纳解法…都差不多吧

6年前

在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),最后一个方法就这么弄出来了….

6年前

@Bolt_白衣苍狗 一般本意是考递归

6年前

@夏小虫–_– 怎样才算合格呢

6年前

面试题,无数次,出现这个

WRITTEN BY
BoltDoggy
A doggy named Bolt.
TA的新浪微博
PUBLISHED IN
My Code Wars 我的代码战争【休息一下】

这里讲述的是一个8级(kyu)菜鸟立志成为8段(dan)大神的故事。

他在代码战争中一次次遭遇挫败,而又在乱炖中获得高人指点。

遥想当年自高自大,而今终知天外有天。

坚持要走出一条自己的路,这是一条不归路。


Bolt 在写underscore.js源码分析专栏的时候发现了一个问题,就是看别人写的代码的时候自认为看懂了,但实际上有理解错误自己也不知道。

另外就是看了再牛逼的代码,自己写的时候,还是那些小套套。

于是 Bolt 开了一个新专栏:My Code Wars 我的代码战争。在同一需求下,菜鸟写的代码与大神有什么区别,是思维方式不同,还是什么原因导致的?

欢迎大家来新专栏提供意见和建议。

我的收藏