Mit anderen Worten, es ist eine Kombination, die r aus n herausnimmt.
Ich möchte dies in Python schreiben.
Verwenden Sie in diesem Fall die Funktion "Reduzieren" höherer Ordnung.
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
Wenn Sie mit einem Lambda-Ausdruck schreiben,
reduce(lambda x, y: x * y, xrange(n, n - r, -1))
Schreiben Sie wie.
Recommended Posts