Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -1,4 +1,8 @@
|
|||
(defun fibonacci-recursive (n)
|
||||
(if (< n 2)
|
||||
n
|
||||
(+ (fibonacci-recursive (- n 2)) (fibonacci-recursive (- n 1)))))
|
||||
(defun fibonacci-iterative (n &aux (f0 0) (f1 1))
|
||||
(case n
|
||||
(0 f0)
|
||||
(1 f1)
|
||||
(t (loop for n from 2 to n
|
||||
for a = f0 then b and b = f1 then result
|
||||
for result = (+ a b)
|
||||
finally (return result)))))
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
(defun fibonacci-iterative (n &aux (f0 0) (f1 1))
|
||||
(case n
|
||||
(0 f0)
|
||||
(1 f1)
|
||||
(t (loop for n from 2 to n
|
||||
for a = f0 then b and b = f1 then result
|
||||
for result = (+ a b)
|
||||
finally (return result)))))
|
||||
(defun fibonacci (n)
|
||||
(let ((a 0) (b 1) (c n))
|
||||
(loop for i from 2 to n do
|
||||
(setq c (+ a b)
|
||||
a b
|
||||
b c))
|
||||
c))
|
||||
|
|
|
|||
|
|
@ -1,4 +1 @@
|
|||
(defun fibonacci-tail-recursive ( n &optional (a 0) (b 1))
|
||||
(if (= n 0)
|
||||
a
|
||||
(fibonacci-tail-recursive (- n 1) b (+ a b))))
|
||||
(loop for x = 0 then y and y = 1 then (+ x y) do (print x))
|
||||
|
|
|
|||
|
|
@ -1,9 +1,4 @@
|
|||
(defun fib (n &optional (a 1) (b 0) (p 0) (q 1))
|
||||
(if (= n 1) (+ (* b p) (* a q))
|
||||
(fib (ash n -1)
|
||||
(if (evenp n) a (+ (* b q) (* a (+ p q))))
|
||||
(if (evenp n) b (+ (* b p) (* a q)))
|
||||
(+ (* p p) (* q q))
|
||||
(+ (* q q) (* 2 p q))))) ;p is Fib(2^n-1), q is Fib(2^n).
|
||||
|
||||
(print (fib 100000))
|
||||
(defun fibonacci-recursive (n)
|
||||
(if (< n 2)
|
||||
n
|
||||
(+ (fibonacci-recursive (- n 2)) (fibonacci-recursive (- n 1)))))
|
||||
|
|
|
|||
|
|
@ -1 +1,4 @@
|
|||
(loop for x = 0 then y and y = 1 then (+ x y) do (print x))
|
||||
(defun fibonacci-tail-recursive ( n &optional (a 0) (b 1))
|
||||
(if (= n 0)
|
||||
a
|
||||
(fibonacci-tail-recursive (- n 1) b (+ a b))))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
(defun fib (n &optional (a 1) (b 0) (p 0) (q 1))
|
||||
(if (= n 1) (+ (* b p) (* a q))
|
||||
(fib (ash n -1)
|
||||
(if (evenp n) a (+ (* b q) (* a (+ p q))))
|
||||
(if (evenp n) b (+ (* b p) (* a q)))
|
||||
(+ (* p p) (* q q))
|
||||
(+ (* q q) (* 2 p q))))) ;p is Fib(2^n-1), q is Fib(2^n).
|
||||
|
||||
(print (fib 100000))
|
||||
Loading…
Add table
Add a link
Reference in a new issue