1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/awk -f ### fib.awk 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 }