Essays
http://www.jsoftware.com/jwiki/Essays/Fibonacci%20Sequence
Fibonacci numbers by matrix product:
A=:2 2$1 1 1 2
mp=:+/ .*
mp~A
2 3
3 5
mp~^:4 x:A
1346269 2178309
2178309 3524578
Then multiply specific matrices to find a particular Fibonacci number.
From Wolfram Alpha the entry for 1346269 says
1346269 is the 31st Fibonacci number (F_31).
1346269 is the hypotenuse of 2 primitive Pythagorean triples:
1346269^2 = 184981^2+1333500^2 = 602069^2+1204140^2
Date: Wed, 2 Sep 2015 01:32:45 +0100
From: Jon Hough<[email protected]>
To:"[email protected]" <[email protected]>
Subject: [Jprogramming] Comparing J speed
Message-ID:<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
In this talkhttps://www.youtube.com/watch?v=apBWkBDVlow
the presenter attempts to show Haskell hasn't sacrificed speed for
expressiveness by comparing a Java Fibonacci calculator to his Haskell
one.(skip to the 18:00 mark).Essentially, to calculate the 475000th Fibonacci
number, it took his Java program ~8 seconds, while the very terse Haskell
program took ~6 seconds.
So I tried to do the same in J. My first attempt, used a tacit, memoized verb
fib1 =:1:`(($:@:<:) + ($:@:-&2))@.(2&<)M.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm