A128173 Numbers in ternary reflected Gray code order.
0, 1, 2, 5, 4, 3, 6, 7, 8, 17, 16, 15, 12, 13, 14, 11, 10, 9, 18, 19, 20, 23, 22, 21, 24, 25, 26, 53, 52, 51, 48, 49, 50, 47, 46, 45, 36, 37, 38, 41, 40, 39, 42, 43, 44, 35, 34, 33, 30, 31, 32, 29, 28, 27, 54, 55, 56, 59, 58, 57, 60, 61, 62, 71, 70, 69, 66, 67, 68, 65, 64, 63, 72
Offset: 0
Keywords
Links
- Alois P. Heinz, Table of n, a(n) for n = 0..19682
- Donald E. Knuth, The Art of Computer Programming, Pre-Fascicle 2A, Draft of Section 7.2.1.1, subsection "Nonbinary Gray codes", page 18. At the bottom of page 19, ternary example g hat for all m_j=3 is the present sequence.
- Z. Sunic, Tree morphisms, transducers and integer sequences, arXiv:math/0612080 [math.CO], 2006.
- Index entries for sequences that are permutations of the natural numbers
Programs
-
Maple
A128173 := proc(nmax) local K,tmp,n3,n,r,c,t,a ; n3 := 3 ; n := 1 ; K := linalg[matrix](n3,1,[[0],[1],[2]]) ; while n3 < nmax do n3 := n3*3 ; n := n+1 ; tmp := K ; K := linalg[extend](K,2*n3/3,1,0) ; K := linalg[copyinto](tmp,K,1+n3/3,1) ; K := linalg[copyinto](tmp,K,1+2*n3/3,1) ; for r from 1 to n3 do K[r,n] := floor((r-1)/(n3/3)) ; od ; for r from n3/3+1 to n3/2 do for c from 1 to n do t := K[r,c] ; K[r,c] := K[n3+1-r,c] ; K[n3+1-r,c] := t ; od ; od ; od ; a := [] ; for r from 1 to n3 do a := [op(a), add( K[r,c]*3^(c-1),c=1..n) ] ; od ; a ; end: A128173(30) ; # R. J. Mathar, Jun 17 2007
-
Mathematica
a[n_] := Module[{v, r, i}, v = IntegerDigits[n, 3]; r = 0; For[i = 1, i <= Length[v], i++, If[r == 1, v[[i]] = 2 - v[[i]]]; r = Mod[r + v[[i]], 2]]; FromDigits[v, 3]]; a /@ Range[0, 100] (* Jean-François Alcover, Jul 18 2020, after Kevin Ryde *)
-
PARI
a(n) = my(v=digits(n,3),r=Mod(0,2)); for(i=1,#v, if(r,v[i]=2-v[i]); r+=v[i]); fromdigits(v,3); \\ Kevin Ryde, May 21 2020
Extensions
More terms from R. J. Mathar, Jun 17 2007
Offset changed to 0 by Alois P. Heinz, Feb 23 2018