本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 有多少个5位递减数? ====== ===== 问题 ===== A decreasing number is a number where each digit is less than the digit to its left. For example, 87420 is a decreasing number. How many five digit decreasing numbers are there? ===== 解 ===== 这是一道典型的排列组合问题。首先,由于递减数的定义是高位比低位数字要大,令该数字为<m>overline{abcde}</m>,满足<m>a>b</m>、<m>b>c</m>、<m>c>d</m>、<m>d>e</m>,这样我们需要取5个不同的数字。在0-9这10个数字中选取5个不同的数字之后,其从大到小的排列方式是唯一的,因而这个问题就转化成了在10个数字中任意选取5个数字有多少种组合的问题。 我们知道:<m>n C r = {n!} / {r!(n-r)!}</m> 由于 <m>n=10</m> 而 <m>r=5</m>,得到: <m>10 C 5 = {10!} / {5!(10-5)!}</m> <m>10 C 5 = {10*9*8*7*6*5*4*3*2*1} / {{(5*4*3*2*1)*(5*4*3*2*1)}}</m> <m>10 C 5 = {10*9*8*7*6} / {{5*4*3*2*1}}</m> <m>10 C 5 = {2*9*2*7*2} / {{2*1}}</m> <m>10 C 5 = {2*9*2*7}</m> <m>10 C 5 = 252</m> 因此一共有252个。 写个 Python 脚本验证一下: <code python> total = 0 for x in range(43210,98765+1): a, b, c, d, e = str(x) if (a > b) and (b > c) and (c > d) and (d > e): total = total + 1 print(total) </code>