blob: 01cb8ce5975eac8e7c1c0fc947ae2922214b9431 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/awk -f
### fib.awk
# print nth Fibonacci number, based on R. Hamming's solution to a diff eqn
# form of the sequence
BEGIN {
ARGV[1] ? n = ARGV[1] : n = 0
ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g"
# fib sol'n from Hamming
C1 = 1.0/sqrt(5.0)
C2 = -1.0/sqrt(5.0)
print C1*(0.5*(1 + sqrt(5.0)))^n + C2*(0.5*(1 - sqrt(5.0)))^n
phi = 0.5*(1 + sqrt(5.0))
binet = (phi^n - (-1.0/phi)^n)/sqrt(5.0)
print binet
}
|