En d'autres termes, c'est une combinaison qui retire r de n.
Je veux écrire ceci en Python.
Dans un tel cas, utilisez la fonction d'ordre supérieur «réduire».
import operator as op
def ncr(n,r):
r = min(n-r,r)
if r == 0:
return 1
num_over = reduce(op.mul, xrange(n, n - r, -1))
num_under = reduce(op.mul, xrange(1,r + 1))
return num_over // num_under
Si vous écrivez avec une expression lambda,
reduce(lambda x, y: x * y, xrange(n, n - r, -1))
Écrivez comme.
Recommended Posts