Lucas's theorem #
This file contains a proof of Lucas's theorem about
binomial coefficients, which says that for primes p
, n
choose k
is congruent to product of
n_i
choose k_i
modulo p
, where n_i
and k_i
are the base-p
digits of n
and k
,
respectively.
Main statements #
lucas_theorem
: the binomial coefficientn choose k
is congruent to the product ofn_i choose k_i
modulop
, wheren_i
andk_i
are the base-p
digits ofn
andk
, respectively.
For primes p
, choose n k
is congruent to choose (n % p) (k % p) * choose (n / p) (k / p)
modulo p
. Also see choose_modEq_choose_mod_mul_choose_div_nat
for the version with MOD
.
For primes p
, choose n k
is congruent to choose (n % p) (k % p) * choose (n / p) (k / p)
modulo p
. Also see choose_modEq_choose_mod_mul_choose_div
for the version with ZMOD
.
For primes p
, choose n k
is congruent to the product of choose (⌊n / p ^ i⌋ % p) (⌊k / p ^ i⌋ % p)
over i < a, multiplied by choose (⌊n / p ^ a⌋) (⌊k / p ^ a⌋)
, modulo p
.
Alias of Choose.choose_modEq_prod_range_choose
.
Lucas's Theorem: For primes p
, choose n k
is congruent to the product of
choose (⌊n / p ^ i⌋ % p) (⌊k / p ^ i⌋ % p)
over i
modulo p
.
Alias of Choose.choose_modEq_prod_range_choose_nat
.
Lucas's Theorem: For primes p
, choose n k
is congruent to the product of
choose (⌊n / p ^ i⌋ % p) (⌊k / p ^ i⌋ % p)
over i
modulo p
.