login
Choix de Bruxelles, version 2: irregular table read by rows in which row n lists all the legal numbers that can be reached by halving or doubling some substring of the decimal expansion of n (including the empty string).
13

%I #18 May 11 2024 21:55:51

%S 1,2,1,2,4,3,6,2,4,8,5,10,3,6,12,7,14,4,8,16,9,18,5,10,20,11,12,21,22,

%T 6,11,12,14,22,24,13,16,23,26,7,12,14,18,24,28,15,25,30,110,8,13,16,

%U 26,32,112,17,27,34,114,9,14,18,28,36,116,19,29,38

%N Choix de Bruxelles, version 2: irregular table read by rows in which row n lists all the legal numbers that can be reached by halving or doubling some substring of the decimal expansion of n (including the empty string).

%C The differs from the first version (in A323286) in that now n can be reached from n (by using the empty string).

%C This slight modification of the definition makes the analysis simpler.

%C The number of numbers that can be reached from n in one step is A323287(n)+1.

%C The minimal number of steps to reach n starting at 1 is still given by A323454.

%H Eric Angelini, Lars Blomberg, Charlie Neder, Remy Sigrist, and N. J. A. Sloane, <a href="http://arxiv.org/abs/1902.01444">"Choix de Bruxelles": A New Operation on Positive Integers</a>, arXiv:1902.01444 [math.NT], Feb 2019; Fib. Quart. 57:3 (2019), 195-200.

%H Brady Haran and N. J. A. Sloane, <a href="https://www.youtube.com/watch?v=AeqK96UX3rA">The Brussels Choice</a>, Numberphile video (2020)

%e Rows 1 through 20 are:

%e 1, 2,

%e 1, 2, 4,

%e 3, 6,

%e 2, 4, 8,

%e 5, 10,

%e 3, 6, 12,

%e 7, 14,

%e 4, 8, 16,

%e 9, 18,

%e 5, 10, 20,

%e 11, 12, 21, 22,

%e 6, 11, 12, 14, 22, 24,

%e 13, 16, 23, 26,

%e 7, 12, 14, 18, 24, 28,

%e 15, 25, 30, 110,

%e 8, 13, 16, 26, 32, 112,

%e 17, 27, 34, 114,

%e 9, 14, 18, 28, 36, 116,

%e 19, 29, 38, 118,

%e 10, 20, 40

%o (Python)

%o def cdb2(n):

%o s, out = str(n), {n}

%o for l in range(1, len(s)+1):

%o for i in range(len(s)+1-l):

%o if s[i] == '0': continue

%o t = int(s[i:i+l])

%o out.add(int(s[:i] + str(2*t) + s[i+l:]))

%o if t&1 == 0: out.add(int(s[:i] + str(t//2) + s[i+l:]))

%o return sorted(out)

%o print([c for n in range(1, 21) for c in cdb2(n)]) # _Michael S. Branicky_, Jul 24 2022

%Y Cf. A323286, A323287, A323453, A323454.

%K nonn,base,tabf

%O 1,2

%A _N. J. A. Sloane_, Jan 22 2019