有多少个5位递减数?

有多少个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?

这是一道典型的排列组合问题。首先,由于递减数的定义是高位比低位数字要大,令该数字为overline{abcde},满足a>bb>cc>dd>e,这样我们需要取5个不同的数字。在0-9这10个数字中选取5个不同的数字之后,其从大到小的排列方式是唯一的,因而这个问题就转化成了在10个数字中任意选取5个数字有多少种组合的问题。

我们知道:n C r = {n!} / {r!(n-r)!}

由于 n=10r=5,得到:

10 C 5 = {10!} / {5!(10-5)!}

10 C 5 = {10*9*8*7*6*5*4*3*2*1} / {{(5*4*3*2*1)*(5*4*3*2*1)}}

10 C 5 = {10*9*8*7*6} / {{5*4*3*2*1}}

10 C 5 = {2*9*2*7*2} / {{2*1}}

10 C 5 = {2*9*2*7}

10 C 5 = 252

因此一共有252个。

写个 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)
notes/math/decreasing_number.txt · 最后更改: 2023/12/12 08:33