%I #40 Jul 28 2023 10:40:34
%S 101,102,103,104,105,106,107,108,109,120,121,130,131,132,140,141,142,
%T 143,150,151,152,153,154,160,161,162,163,164,165,170,171,172,173,174,
%U 175,176,180,181,182,183,184,185,186,187,190,191,192,193,194,195,196
%N Bouncy numbers (numbers whose digits are in neither increasing nor decreasing order).
%C Complement of union of A009994 and A009996. - _Ray Chandler_, Oct 25 2011
%C Number of n-digit bouncy numbers is 9*10^(n-1) - (n+18)*binomial(n+8, 8)/9 + 10. - _Altug Alkan_, Oct 02 2018
%H David F. Marrs, <a href="/A152054/b152054.txt">Table of n, a(n) for n = 1..10000</a>
%H Project Euler, <a href="http://projecteuler.net/problem=113">Non-bouncy numbers Problem 113</a>
%t Select[Range[0,200], !LessEqual@@IntegerDigits[#] && !GreaterEqual@@IntegerDigits[#]&] (* _Ray Chandler_, Oct 25 2011 *)
%t bnQ[n_]:=Module[{didn=Differences[IntegerDigits[n]]},Count[didn,_?(#>0&)]>0 && Count[didn,_?(#<0&)]>0]; Select[Range[100,200],bnQ] (* _Harvey P. Dale_, Jun 13 2020 *)
%o (Python)
%o a = 1
%o b = 100
%o while a != 51:
%o if str(b) != ''.join(sorted(str(b))) and str(b) != ''.join(sorted(str(b)))[::-1]:
%o print(b)
%o a += 1
%o b += 1
%o # _David F. Marrs_, Sep 25 2018
%o (Python)
%o from itertools import count, islice
%o def A152054_gen(startvalue=1): # generator of terms >= startvalue
%o for n in count(max(startvalue,1)):
%o l = len(s:=tuple(int(d) for d in str(n)))
%o for i in range(1,l-1):
%o if (s[i-1]-s[i])*(s[i]-s[i+1]) < 0:
%o yield n
%o break
%o A152054_list = list(islice(A152054_gen(),30)) # _Chai Wah Wu_, Jul 28 2023
%Y Cf. A152464. - _Jon E. Schoenfield_, Dec 06 2008
%Y Cf. A009994, A009996, A204692.
%K nonn,base,easy
%O 1,1
%A Jerome Abela (Jerome.Abela(AT)gmail.com), Nov 22 2008
%E More terms from _Jon E. Schoenfield_, Dec 06 2008