A335972 The Locomotive Pushing the Wagons to the Right sequence (see Comments lines for definition).
2, 13, 14, 15, 16, 17, 18, 91, 201, 202, 31, 203, 24, 25, 26, 27, 28, 92, 41, 204, 35, 36, 37, 38, 93, 42, 51, 205, 46, 47, 48, 94, 52, 61, 206, 57, 58, 95, 62, 71, 207, 68, 96, 72, 81, 208, 97, 82, 131, 301, 302, 132, 133, 141, 303, 142, 134, 53, 143, 144, 63, 145, 64, 73, 146, 74
Offset: 1
Examples
The sequence starts with 2, 13, 14, 15, 16, 17, 18, 91, 201, 202,... a(1) = 2 as there is no earliest possible (pushing to the right) locomotive; a(2) = 13 starts with 1 and 3: now 1 < 2 < 3 [2 being the rightmost digit of a(1)]; a(3) = 14 starts with 1 and 4: now 1 < 3 < 4 [3 being the rightmost digit of a(2)]; a(4) = 15 starts with 1 and 5: now 1 < 4 < 5 [4 being the rightmost digit of a(3)]; (...) a(8) = 91 starts with 9 and 1: now 9 > 8 > 1 [8 being the rightmost digit of a(7)]; a(9) = 201 starts with 2 and 0: now 2 > 1 > 0 [1 being the rightmost digit of a(8)]; a(10) = 202 starts with 2 and 0: now 2 > 1 > 0 [1 being the rightmost digit of a(9)]; etc.
Links
- Carole Dubois, Table of n, a(n) for n = 1..5001
Programs
-
Python
def dead_end(k): return k%10 in {0, 9} def aupto(n, seed=2): train, used = [seed], {seed} for n in range(2, n+1): caboose = train[-1] hook = caboose % 10 low2, high2 = 10 + (hook + 1), 90 + (hook - 1) an, pow10b = low2, 1 while an in used or dead_end(an): an += 1 first2 = an//pow10b a2, b2 = divmod(first2, 10) while True: if a2 < hook < b2 or a2 > hook > b2: train.append(an) used.add(an) break if first2 > high2: pow10b *= 10 an = low2*pow10b else: an += pow10b an -= an%pow10b while an in used or dead_end(an): an += 1 first2 = an//pow10b a2, b2 = divmod(first2, 10) return train # use train[n-1] for a(n) print(aupto(66)) # Michael S. Branicky, Dec 14 2020
Comments