|
|
A336006
|
|
a(n) = the least k such that the mixed binary-ternary representation of k has n terms. See Comments.
|
|
3
|
|
|
1, 5, 14, 46, 127, 383, 1407, 3594, 11786, 31469, 97005, 451299, 982740, 3079892, 7862861, 24640077, 110733519, 244951247, 1019792225, 3344315159, 13804668362, 48164406730, 185603360202, 468032896683, 1567544524459, 4109410352788, 12905503374996, 58659088284918
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
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
|
|
|
FORMULA
|
a(n+1) = a(n) + t, where t is the least element in B such that the largest element of B in the interval (a(n), a(n) + t) is t; see link for proof. - Michael S. Branicky, Jan 06 2022
|
|
EXAMPLE
|
1 = 1 (1 term);
5 = 4 + 1 (2 terms);
14 = 9 + 4 + 1 (3 terms);
46 = 32 + 9 + 4 + 1 (4 terms);
127 = 81 + 32 + 9 + 4 + 1 (5 terms).
|
|
MATHEMATICA
|
z = 20; zz = 100000;
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];
Table[First[Flatten[Position[m, k]]], {k, 1, 11}]
|
|
PROG
|
(Python)
from itertools import count, takewhile, islice
def big_greedy(k, B, start=0):
idx = start
while idx < len(B) and B[idx] <= k: idx += 1
return B[idx - 1]
def agen(limit=10**1001):
an, idx, t = 1, 0, 2
B1 = list(takewhile(lambda x: x <= limit, (2**i for i in count(0))))
B21 = list(takewhile(lambda x: x <= limit, (3**i for i in count(0))))
B22 = list(takewhile(lambda x: x <= limit, (2*3**i for i in count(0))))
B = sorted(set(B1 + B21 + B22))
while an <= limit:
yield an
while t != big_greedy(an+t, B, start=idx):
idx, t = idx+1, B[idx+1]
an += t
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|