-- -*-lua-*- -- ==================================================================== -- Print ascending members of the Fibonacci sequence that are -- representable as 64-bit signed integers, prefixed by their term -- numbers, and followed by the ratio of successive terms, to -- demonstrate the 1.618...^n growth (the ratio approaches the golden -- ratio, (1 + sqrt(5))/2 = 1.6180339887498949, and reaches it (to -- machine precision) at 41 terms: the fourth item on each line is -- the difference from the golden ratio). -- [04-May-2006] -- ==================================================================== function printf(...) io.write(string.format(...)) end golden_ratio = (1.0 + math.sqrt(5.0))/2.0 lo = 1 hi = 1 n = 1 printf("%5d\t%d\n", n, lo) limit = 2^52 + (2^52 - 1) while (hi < limit) do n = n + 1 ratio = hi/lo printf("%5d\t%16.0f\t%.15f\t%.15f\n", n, hi, ratio, (ratio - golden_ratio)) hi = lo + hi lo = hi - lo end