Ejemplo n.º 1
0
 public BinomialCoefficient(int n)
 {
     fact    = new ModInt[n + 1];
     ifact   = new ModInt[n + 1];
     fact[0] = 1;
     for (int i = 1; i <= n; i++)
     {
         fact[i] = fact[i - 1] * i;
     }
     ifact[n] = ModInt.Inverse(fact[n]);
     for (int i = n - 1; i >= 0; i--)
     {
         ifact[i] = ifact[i + 1] * (i + 1);
     }
     ifact[0] = ifact[1];
 }
Ejemplo n.º 2
0
 public static ModInt Pow(ModInt value, long k)
 {
     return(Pow(value.value_, k));
 }
Ejemplo n.º 3
0
 public static ModInt Inverse(ModInt value)
 {
     return(Pow(value, P - 2));
 }