cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A033075 Positive numbers all of whose pairs of consecutive decimal digits differ by 1.

This page as a plain text file.
%I A033075 #54 Aug 26 2021 08:54:06
%S A033075 1,2,3,4,5,6,7,8,9,10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98,
%T A033075 101,121,123,210,212,232,234,321,323,343,345,432,434,454,456,543,545,
%U A033075 565,567,654,656,676,678,765,767,787,789,876
%N A033075 Positive numbers all of whose pairs of consecutive decimal digits differ by 1.
%C A033075 Number of n-digit terms: 9, 17, 32, 61, 116, 222, 424 (= A090994).
%C A033075 Also called 10-esthetic numbers (where in general a q-esthetic number has the property that the consecutive digits of its base-q representation differ by 1, see "Esthetic numbers" by J. M. De Koninck and N. Doyon). - _Narad Rampersad_, Aug 03 2018
%H A033075 Reinhard Zumkeller, <a href="/A033075/b033075.txt">Table of n, a(n) for n = 1..10000</a>
%H A033075 J. M. De Koninck and N. Doyon, <a href="http://www.jeanmariedekoninck.mat.ulaval.ca/fileadmin/jmdk/Documents/Publications/2009_esthetic_numbers.pdf">Esthetic numbers</a>, Annales des Sciences mathématiques du Québec, 33 (2009), 155-164.
%F A033075 a(n) >> n^3.53267..., where the exponent is log 10/log k and k is the largest root of x^5 - x^4 - 4x^3 + 3x^2 + 3x - 1. - _Charles R Greathouse IV_, Mar 11 2014
%t A033075 Join[Range[9],Select[Range[2000],Union[Abs[Differences[IntegerDigits[#]]]]=={1}&]] (* _Harvey P. Dale_, Dec 28 2011 *)
%o A033075 (Haskell)
%o A033075 -- import Data.Set (fromList, deleteFindMin, insert)
%o A033075 a033075 n = a033075_list !! (n-1)
%o A033075 a033075_list = f (fromList [1..9]) where
%o A033075    f s | d == 0    = m : f (insert (10*m+1) s')
%o A033075        | d == 9    = m : f (insert (10*m+8) s')
%o A033075        | otherwise = m : f (insert (10*m+d-1) (insert (10*m+d+1) s'))
%o A033075        where (m,s') = deleteFindMin s
%o A033075              d = mod m 10
%o A033075 -- _Reinhard Zumkeller_, Feb 21 2012
%o A033075 (PARI) diff(v)=vector(#v-1,i,v[i+1]-v[i])
%o A033075 is(n)=if(n>9, Set(abs(diff(digits(n))))==[1], n>0) \\ _Charles R Greathouse IV_, Mar 11 2014
%o A033075 (Python)
%o A033075 def ok(n):
%o A033075     s = str(n)
%o A033075     return all(abs(int(s[i]) - int(s[i+1])) == 1 for i in range(len(s)-1))
%o A033075 print(list(filter(ok, range(1, 877)))) # _Michael S. Branicky_, Aug 22 2021
%o A033075 (Python) # faster version for initial segment of sequence
%o A033075 def gen(d, s=None): # generate remaining d digits, from start digit s
%o A033075     if d == 0:
%o A033075         yield tuple()
%o A033075         return
%o A033075     if s == None:
%o A033075         yield from [(i, ) + g for i in range(1, 10) for g in gen(d-1, s=i)]
%o A033075     else:
%o A033075         if s > 0:
%o A033075             yield from [(s-1, ) + g for g in gen(d-1, s=s-1)]
%o A033075         if s < 9:
%o A033075             yield from [(s+1, ) + g for g in gen(d-1, s=s+1)]
%o A033075 def agentod(digits):
%o A033075     for d in range(1, digits+1):
%o A033075         yield from [int("".join(map(str, g))) for g in gen(d, s=None)]
%o A033075 print(list(agentod(11))) # _Michael S. Branicky_, Aug 22 2021
%Y A033075 Cf. A090994, A048398 (primes), A048411 (squares), A207954 (palindromes).
%K A033075 nonn,base,easy
%O A033075 1,2
%A A033075 _Clark Kimberling_