OFFSET
0,2
COMMENTS
Could also be described as "Write n in base 3, then replace each digit with its base-3 negative" as with A048647 for base 4. - Henry Bottomley, Apr 19 2000
a(a(n)) = n, a self-inverse permutation of the nonnegative integers. - Reinhard Zumkeller, Dec 19 2003
First 3^n terms of the sequence form a permutation s(n) of 0..3^n-1, n>=1; the number of inversions of s(n) is A016142(n-1). - Gheorghe Coserea, Apr 23 2018
LINKS
Gheorghe Coserea, Table of n, a(n) for n = 0..59048 (first 6561 terms from Alois P. Heinz)
FORMULA
Tersum m + n: write m and n in base 3 and add mod 3 with no carries, e.g., 5 + 8 = "21" + "22" = "10" = 1.
a(n) = Sum(3-d(i)-3*0^d(i): n=Sum(d(i)*3^d(i): 0<=d(i)<3)). - Reinhard Zumkeller, Dec 19 2003
a(3*n) = 3*a(n), a(3*n+1) = 3*a(n)+2, a(3*n+2) = 3*a(n)+1. - Robert Israel, May 09 2014
MAPLE
a:= proc(n) local t, r, i;
t, r:= n, 0;
for i from 0 while t>0 do
r:= r+3^i *irem(2*irem(t, 3, 't'), 3)
od; r
end:
seq(a(n), n=0..80); # Alois P. Heinz, Sep 07 2011
MATHEMATICA
a[n_] := FromDigits[Mod[3-IntegerDigits[n, 3], 3], 3]; Table[a[n], {n, 0, 66}] (* Jean-François Alcover, Mar 03 2014 *)
PROG
(Haskell)
a004488 0 = 0
a004488 n = if d == 0 then 3 * a004488 n' else 3 * a004488 n' + 3 - d
where (n', d) = divMod n 3
-- Reinhard Zumkeller, Mar 12 2014
(PARI) a(n) = my(b=3); fromdigits(apply(d->(b-d)%b, digits(n, b)), b);
vector(67, i, a(i-1)) \\ Gheorghe Coserea, Apr 23 2018
(Python)
from sympy.ntheory.factor_ import digits
def a(n): return int("".join([str((3 - i)%3) for i in digits(n, 3)[1:]]), 3) # Indranil Ghosh, Jun 06 2017
CROSSREFS
KEYWORD
AUTHOR
STATUS
approved