Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Canyon numbers. Numbers with exactly one locally minimal digit and with exactly two locally maximal digits which are the same digit and nonadjacent.
10

%I #44 Aug 03 2022 02:33:45

%S 101,202,212,303,313,323,404,414,424,434,505,515,525,535,545,606,616,

%T 626,636,646,656,707,717,727,737,747,757,767,808,818,828,838,848,858,

%U 868,878,909,919,929,939,949,959,969,979,989,2012,2102,3013,3023

%N Canyon numbers. Numbers with exactly one locally minimal digit and with exactly two locally maximal digits which are the same digit and nonadjacent.

%C A digit of a number is a local minimum if it is less than (or equal to) its neighboring digit(s). It is a local maximum likewise if it is greater than (or equal to) its neighboring digit(s). For example, 55432123 has three local maxima (the two 5s and the end 3) and one local minimum (the 1).

%C Because they are nonadjacent, the maxima occur at the end (and the minimum somewhere between), and the sequence of digits must be decreasing up to the minimum, then increasing. This may be taken as part of the definition (which entails nonadjacency of the maxima).

%C The structure of digits represents a canyon (a deep valley between cliffs). The first digit is equal to the last digit. The first group of digits are in decreasing order. The second group of digits are in increasing order. The digits have a unique smallest digit which represents the bottom of the canyon.

%C This sequence is finite -- it has 116505 terms. The largest and final term of the sequence is a(116505) = 9876543210123456789.

%C 9752369 is a canyon number because the unique minimum digit is the 2, and the maximum digit is 9 (at the beginning and end).

%H Kellen Myers, <a href="/A134970/b134970.txt">Table of n, a(n) for n = 1..116505</a>

%e Illustration of 4104 as a canyon number:

%e 4 . . 4

%e . . . .

%e . . . .

%e . 1 . .

%e . . 0 .

%o (Python)

%o from itertools import chain, combinations as combs

%o ups = list(chain.from_iterable(combs(range(10), r) for r in range(2, 11)))

%o s = set(L[::-1] + R[1:] for L in ups for R in ups if L[0] == R[0])

%o afull = sorted(int("".join(map(str, t))) for t in s if t[0] == t[-1])

%o print(afull[:60]) # _Michael S. Branicky_, Aug 02 2022

%Y Cf. A134971.

%K fini,nonn,base,full

%O 1,1

%A _Omar E. Pol_, Nov 25 2007, Nov 26 2007

%E Edited by _Kellen Myers_, Jan 18 2011