%I #76 Mar 13 2021 00:55:43
%S 0,1,0,1,2,-1,0,1,0,1,2,1,2,3,-2,-1,0,-1,0,1,0,1,2,-1,0,1,0,1,2,1,2,3,
%T 0,1,2,1,2,3,2,3,4,-3,-2,-1,-2,-1,0,-1,0,1,-2,-1,0,-1,0,1,0,1,2,-1,0,
%U 1,0,1,2,1,2,3,-2,-1,0,-1,0,1,0,1,2,-1,0,1,0,1,2,1,2,3,0,1,2,1,2,3,2,3,4,-1,0,1,0,1,2,1,2,3,0,1,2,1,2
%N Sum of balanced ternary digits in n. Replace 3^k with 1 in balanced ternary expansion of n.
%C Notation: (3)<n>(1).
%C Extension to negative n: a(-n) = -a(n). - _Franklin T. Adams-Watters_, May 13 2009
%C Row sums of A059095. - _Rémy Sigrist_, Oct 05 2019
%H Reinhard Zumkeller, <a href="/A065363/b065363.txt">Table of n, a(n) for n = 0..10000</a>
%H F. T. Adams-Watters and F. Ruskey, <a href="https://cs.uwaterloo.ca/journals/JIS/VOL12/Ruskey2/ruskey14.html">Generating Functions for the Digital Sum and Other Digit Counting Sequences</a>, JIS 12 (2009) 09.5.6.
%H Daniel Forgues, <a href="/A065363/a065363.txt">Table of n, a(n) for n = 0..100000</a>
%F G.f.: (1/(1-x))*Sum_{k>=0} (x^3^k - x^(2*3^k))/(x^((3^k-1)/2)*(1 + x^3^k + x^(2*3^k))). - _Franklin T. Adams-Watters_, May 13 2009
%F a(n) = A134024(n) - A134022(n). - _Reinhard Zumkeller_, Dec 16 2010
%F a(3*n - 1) = a(n) - 1, a(3*n) = a(n), a(3*n + 1) = a(n) + 1. - _Thomas König_, Jun 24 2020
%e 5 = + 1(9) - 1(3) - 1(1) -> +1 - 1 - 1 = -1 = a(5).
%p a:= proc(n) `if`(n=0, 0, (d-> `if`(d=2,
%p a(q+1)-1, d+a(q)))(irem(n, 3, 'q')))
%p end:
%p seq(a(n), n=0..120); # _Alois P. Heinz_, Jan 09 2020
%t balTernDigits[0] := {0}; balTernDigits[n_/;n > 0] := Module[{unParsed = n, currRem, currExp = 1, digitList = {}, nextDigit}, While[unParsed > 0, If[unParsed == 3^(currExp - 1), digitList = Append[digitList, 1]; unParsed = 0, currRem = Mod[unParsed, 3^currExp]/3^(currExp - 1); nextDigit = Switch[currRem, 0, 0, 2, -1, 1, 1]; digitList = Append[digitList, nextDigit]; unParsed = unParsed - nextDigit * 3^(currExp - 1)]; currExp++]; digitList = Reverse[digitList]; Return[digitList]]; balTernDigits[n_/;n < 0] := (-1)balTernDigits[Abs[n]]; Table[Plus@@balTernDigits[n], {n, 0, 108}] (* _Alonso del Arte_, Feb 25 2011 *)
%t terVal[lst_List] := Reverse[lst].(3^Range[0, Length[lst] - 1]); maxDig = 4; t = Table[0, {3 * 3^maxDig/2}]; t[[1]] = 1; Do[d = IntegerDigits[Range[0, 3^dig - 1], 3, dig]/.{2 -> -1}; d = Prepend[#, 1]&/@d; t[[terVal/@d]] = Total/@d, {dig, maxDig}]; Prepend[t, 0] (* _T. D. Noe_, Feb 24 2011 *)
%t Array[Total[Prepend[IntegerDigits[#, 3], 0] //. {a___, b_, 2, c___} :> {a, b + 1, -1, c}] &, 109, 0] (* _Michael De Vlieger_, Jun 27 2020 *)
%o (Python)
%o def a(n):
%o s=0
%o x=0
%o while n>0:
%o x=n%3
%o n=n//3
%o if x==2:
%o x=-1
%o n+=1
%o s+=x
%o return s
%o print([a(n) for n in range(101)]) # _Indranil Ghosh_, Jun 06 2017
%o (PARI) bt(n)=my(d=digits(n,3),c=1); while(c, if(d[1]==2, d=concat(0,d)); c=0; for(i=2,#d, if(d[i]==2,d[i]=-1;d[i-1]+=1;c=1))); d
%o a(n)=vecsum(bt(n)) \\ _Charles R Greathouse IV_, May 07 2020
%Y Cf. A059095, A065364, A053735. See A134452 for iterations.
%Y Cf. A134022, A134024.
%K base,easy,sign,look
%O 0,5
%A _Marc LeBrun_, Oct 31 2001