[go: up one dir, main page]

login
A215023
NegaFibonacci representation for -n.
11
0, 10, 1001, 1000, 1010, 100101, 100100, 100001, 100000, 100010, 101001, 101000, 101010, 10010101, 10010100, 10010001, 10010000, 10010010, 10000101, 10000100, 10000001, 10000000, 10000010, 10001001, 10001000, 10001010, 10100101, 10100100, 10100001, 10100000
OFFSET
0,2
COMMENTS
Let F_{-n} be the negative Fibonacci numbers (as defined in the first comment in A039834): F_{-1}=1, F_{-2}=-1, F_{-3}=2, F_{-4}=-3, F_{-5}=5, ..., F_{-n}=(-1)^(n-1)F_n.
Every integer has a unique representation as n = Sum_{k=1..r} c_k F_{-k} for some r, where the c_k are 0 or 1 and no two adjacent c's are 1.
Then a(n) = c_r ... c_3 c_2 c_1.
REFERENCES
Donald E. Knuth, The Art of Computer Programming, Volume 4A, Combinatorial algorithms, Part 1, Addison-Wesley, 2011, pp. 168-171.
LINKS
M. W. Bunder, Zeckendorf representations using negative Fibonacci numbers, The Fibonacci Quarterly, Vol. 30, No. 2 (1992), pp. 111-115.
Donald E. Knuth, The Art of Computer Programming, Volume 4, Fascicle 1: Bitwise Tricks & Techniques; Binary Decision Diagrams, a pre-publication draft of section 7.1.3, 2009, pp. 36-39.
EXAMPLE
-4 = -3 - 1 = F_{-4} + F_{-2}, so a(4) = 1010.
MATHEMATICA
ind[n_] := Floor[Log[Abs[n]*Sqrt[5] + 1/2]/Log[GoldenRatio]]; f[1] = 1; f[n_] := If[n > 0, i = ind[n - 1]; If[EvenQ[i], i++]; i, i = ind[-n]; If[OddQ[i], i++]; i]; a[n_] := Module[{k = n, s = 0}, While[k != 0, i = f[k]; s += 10^(i - 1); k -= Fibonacci[-i]]; s]; Table[a[n], {n, 0, -100, -1}] (* Amiram Eldar, Oct 15 2019 *)
PROG
(PARI) a(n)=my(s=0, k=0, v); while(s<n, s+=fibonacci(k+=2)); v=binary(2^k\2); n-=fibonacci(k); forstep(i=k-2, 1, -1, if(abs(n+fibonacci(-i))<abs(n), n+=fibonacci(-i); v[#v+1-i]=1; i--)); subst(Pol(v), x, 10) \\ Charles R Greathouse IV, Aug 03 2012 [Caution: returns wrong values for some values of n > 17. Amiram Eldar, Oct 15 2019]
CROSSREFS
KEYWORD
nonn,base
AUTHOR
N. J. A. Sloane, Aug 03 2012
EXTENSIONS
a(18) inserted by Amiram Eldar, Oct 11 2019
STATUS
approved