14 lines
308 B
Text
14 lines
308 B
Text
func fibonacci_matrix(k) is cached {
|
|
Matrix.build(k,k, {|i,j|
|
|
((i == k-1) || (i == j-1)) ? 1 : 0
|
|
})
|
|
}
|
|
|
|
func fibonacci_kth_order(n, k=2) {
|
|
var A = fibonacci_matrix(k)
|
|
(A**n)[0][-1]
|
|
}
|
|
|
|
for k in (2..9) {
|
|
say ("Fibonacci of k=#{k} order: ", (15+k).of { fibonacci_kth_order(_, k) })
|
|
}
|