Problem 53
There are exactly ten ways of selecting three from five, 12345:
In combinatorics, we use the notation, 5C3 = 10.
In general,
nCr=n!r!(n−r)!
, where r ≤ n, n! = n×(n−1)×…×3×2×1, and 0! = 1.
It is not until n = 23, that a value exceeds one-million: 23C10 = 1144066.
How many, not necessarily distinct, values of nCr, for 1 ≤ n ≤ 100, are greater than one-million?
从五个数12345中选择三个恰好有十种方式,分别是:
在组合数学中,我们记作:5C3 = 10。
一般来说,
nCr=n!r!(n−r)!
,其中r ≤ n,n! = n×(n−1)×…×3×2×1,且0! = 1。
直到n = 23时,才出现了超出一百万的组合数:23C10 = 1144066。
若数值相等形式不同也视为不同,对于1 ≤ n ≤ 100,有多少个组合数nCr超过一百万?
sum1 = 0
for n in range(1, 101):
pdc = n
temp = n - 1
for r in range(2, int(n/2)+1):
pdc *= temp/r
if pdc > 1000000:
# print(n,r)
# print(pdc)
sum1 += (n - 1 - 2*(r-1))
break
temp -= 1
print(sum1)