Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,13 @@
|
|||
func fib(n, xs=[1], k=20) {
|
||||
loop {
|
||||
var len = xs.len
|
||||
len >= k && break
|
||||
xs << xs.ft(max(0, len - n)).sum
|
||||
}
|
||||
return xs
|
||||
}
|
||||
|
||||
for i in (2..10) {
|
||||
say fib(i).join(' ')
|
||||
}
|
||||
say fib(2, [2, 1]).join(' ')
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
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) })
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
func fibonacci_kth_order (n, k = 2) {
|
||||
|
||||
return 0 if (n < k-1)
|
||||
|
||||
var f = (1..(k+1) -> map {|j|
|
||||
j < k ? 2**j : 1
|
||||
})
|
||||
|
||||
k += 1
|
||||
|
||||
for i in (2*(k-1) .. n) {
|
||||
f[i%k] = (2*f[(i-1)%k] - f[i%k])
|
||||
}
|
||||
|
||||
return f[n%k]
|
||||
}
|
||||
|
||||
for k in (2..9) {
|
||||
say ("Fibonacci of k=#{k} order: ", (15+k).of { fibonacci_kth_order(_, k) })
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue