login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A336005
a(n) is the number of terms in the mixed binary-ternary representation of n. See Comments.
3
1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 3, 2, 1, 2, 1, 2, 2, 2, 2, 3, 2, 3, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 4, 3, 2, 3, 2, 3, 3, 3, 1, 2, 2, 2, 2, 3, 2, 3, 2, 2, 1, 2, 2, 2, 2, 3, 2, 3, 2, 2, 3, 3, 3, 3, 4, 3, 2, 1, 2, 2, 2, 2, 3
OFFSET
1,5
COMMENTS
Suppose that B1 and B2 are increasing sequences of positive integers, and let B be the increasing sequence of numbers in the union of B1 and B2. Every positive integer n has a unique representation given by the greedy algorithm with B1 as base, and likewise for B2 and B. For many n, the number of terms in the B-representation of n is less than the number of terms in the B1-representation, as well as the B2-representation, but not for all n, as in the example 45 = 27 + 18 (ternary) and 45 = 32 + 9 + 4 (mixed).
LINKS
EXAMPLE
7 = 6 + 1, so a(7) = 2.
45 = 32 + 9 + 4, so a(45) = 3.
MATHEMATICA
z = 20; zz = 100;
b1 = Sort[Table[2^k, {k, 0, z}], Greater];
b2 = Sort[Union[Table[3^k, {k, 0, z}], Table[2*3^k, {k, 0, z}]],
Greater]; b = Sort[Union[b1, b2], Greater];
g1 = Map[{#, DeleteCases[b1 Reap[
FoldList[(Sow[Quotient[#1, #2]]; Mod[#1, #2]) &, #, b1]][[2,
1]], 0]} &, Range[zz]];
m1 = Map[Length[#[[2]]] &, g1];
g2 = Map[{#, DeleteCases[b2 Reap[FoldList[(Sow[Quotient[#1, #2]]; Mod[#1, #2]) &, #, b2]][[2, 1]], 0]} &, Range[zz]];
m2 = Map[Length[#[[2]]] &, g2];
g = Map[{#, DeleteCases[
b Reap[FoldList[(Sow[Quotient[#1, #2]]; Mod[#1, #2]) &, #,
b]][[2, 1]], 0]} &, Range[zz]]
m = Map[Length[#[[2]]] &, g];
m1 (* # terms in binary representation *)
m2 (* # terms in trinary representation *)
m (* # terms in mixed base representation *) (* A336005 *)
PROG
(Python)
from itertools import count, takewhile
N = 10**6
B1 = list(takewhile(lambda x: x[0] <= N, ((2**i, 2) for i in count(0))))
B21 = list(takewhile(lambda x: x[0] <= N, ((3**i, 3) for i in count(0))))
B22 = list(takewhile(lambda x: x[0] <= N, ((2*3**i, 3) for i in count(0))))
B = sorted(set(B1 + B21 + B22), reverse=True)
def gbt(n, B): # greedy binary-ternary representation
r = []
for t, b in B:
if t <= n:
r.append(t)
n -= t
if n == 0:
return r
def a(n): return len(gbt(n, B))
print([a(n) for n in range(1, 87)]) # Michael S. Branicky, Jan 06 2022
CROSSREFS
Sequence in context: A110627 A205107 A228667 * A298674 A211354 A211352
KEYWORD
nonn,base
AUTHOR
Clark Kimberling, Jul 06 2020
STATUS
approved