blob: 7a6ab4ec9efaccba8d9c0b997dcd3c0a234a25ec (
plain)
1
2
3
4
5
6
7
8
9
10
|
ll calc_binom(ll n, ll k, ll p) {
assert(n < p); //wichtig: sonst falsch!
if (k > n) return 0;
ll x = k % 2 != 0 ? p-1 : 1;
for (ll c = p-1; c > n; c--) {
x *= c - k; x %= p;
x *= multInv(c, p); x %= p;
}
return x;
}
|