Showing posts with label Fibonacci. Show all posts
Showing posts with label Fibonacci. Show all posts

Wednesday, June 7, 2017

Pascal Triangle

Find the number on row a and position b of Pascals Triangle.
 Row 
and  position numbers begin from 0 

function pascalTriangle(a, b,result=1,i=0)=
 
    i<b?  pascalTriangle(a, b,(result * (a-i)/(i+1)),i+1 ) : result;
 
for(a=[0:10])
echo( [for(b=[0:a])pascalTriangle(a,b)] );
 
ECHO: [1]
ECHO: [1, 1]
ECHO: [1, 2, 1]
ECHO: [1, 3, 3, 1]
ECHO: [1, 4, 6, 4, 1]
ECHO: [1, 5, 10, 10, 5, 1]
ECHO: [1, 6, 15, 20, 15, 6, 1]
ECHO: [1, 7, 21, 35, 35, 21, 7, 1]
ECHO: [1, 8, 28, 56, 70, 56, 28, 8, 1]
ECHO: [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
ECHO: [1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]



Monday, May 22, 2017

Test if a number is a Fibonacci number

Test if a number is in the list of Fibonacci numbers.
The function is_fibonacci returns a vector [true/false,place],
Usage: 



for (i = [0: 100])
  echo(i, ":", is_fibonacci(i));


function is_fibonacci(N) =
let (
  i = floor(log(N * sqrt(5)) / log((1 + sqrt(5)) / 2) + 0.5),
  n = floor(pow((1 + sqrt(5)) / 2, i) / sqrt(5) + 0.5),
  place = (n == N) ? i : -1)
[(n == N), place];