Algorithm to Sum The Fibonacci Numbers

  • 时间:2020-09-07 12:13:31
  • 分类:网络文摘
  • 阅读:156 次

The Fibonacci numbers are defined as the following sequence, with the current item is the sum of the previous two items.

F(1) = 0
F(2) = 1
F(N) = F(N – 1) + F(N – 2) for N >= 3

latex-fibonacci Algorithm to Sum The Fibonacci Numbers algorithms javascript math

Fibonacci Equation

The first few Fibonacci numbers are: 0, 1, 1, 2, 3, 5, 8, 13, 21…

Of course, it is trivial to write a loop to sum the Fibonacci numbers of first N items.

1
2
3
4
5
6
7
8
9
10
11
12
function sumOfFib(n) {
  let a = 0;
  let b = 1;
  let sum = 0;
  for (let i = 1; i < n; ++ i) {
     let c = a + b;
     a = b;
     b = c;
     sum += a;
  }
  return sum;
}
function sumOfFib(n) {
  let a = 0;
  let b = 1;
  let sum = 0;
  for (let i = 1; i < n; ++ i) {
     let c = a + b;
     a = b;
     b = c;
     sum += a;
  }
  return sum;
}

Let’s define the S function the sum of first few Fibonacci numbers:

S(1) = F(1) = 0
S(2) = F(1) + F(2) = 1
S(3) = F(1) + F(2) + F(3) = 2
S(4) = F(1) + F(2) + F(3) + F(4) = 4
S(5) = F(1) + F(2) + F(3) + F(4) + F(5) = 7
…

We notice that
tex_882caded33c9e36a815c7993cab7dd7e Algorithm to Sum The Fibonacci Numbers algorithms javascript math

For example:
S(4) = F(6) – 1 = 5 – 1 = 4
S(3) = F(5) – 1 = 3 – 1 = 2

Using Induction to Prove the Fibonancci Sum Formula

S(1) = 0
S(2) = 1
Assume S(N) = F(N+2) – 1 stands.
S(N+1) = S(N) + F(N+1)
= F(N+2) + F(N+1) – 1
= F(N+3) – 1
And it also works for N+1!

Cancel Out the Fibonacci Numbers

We can rewrite the Fibonacci Formula as F(N) = F(N + 2) – F(N + 1).
Therefore, tex_5b0d46d6ed6c9aa9118a4410e5e8db3a Algorithm to Sum The Fibonacci Numbers algorithms javascript math
= F(2) – F(1) + F(3) – F(2) + F(4) – F(3) + …. F(N + 2) – F(N + 1)
Intermediate items are canceled out:
= F(N + 2) – F(1) = F(N + 2) – 1
How cool is that!

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
How to Determine Sum of Two Square Numbers?  The Repeated String Match Algorithm in Javascript  How to Implement the String Repeat Function in Javascript?  How to Compute the Catalan Number?  SQL Left Outer Join Tutorial with Example: Employee Bonus  5 Court Cases Where Social Media Played a Part  7 Legal Snares Every Blogger Should Avoid  How to Protect your Photos from Online Theft  5 Steps to Successfully Transition from a Blog to an Online Stor  5 Growth Steps to a Profitable Blog 
评论列表
添加评论