def binom(n, k): """ Computes the binomial coefficient using a multiplicative formula. Stolen from https://stackoverflow.com/a/46778364/5990435 """ assert k >= 0 and k <= n if k == 0 or k == n: return 1 b = 1 for i in range(min(k, n-k)): b = b * (n - i) // (i + 1) return b