1.Sperner Theorem
设
A
为n元集,
A1,A2,...,Am
为
A
的子集且两两互不包含,则m的最大值为
(n[n/2])
proof:
lemma:
∑mi=11(n|Ai|)≤1
proof of lemma:
It is equivalent to
∑mi=1|Ai|!(n−|Ai|)!≤n!
On the one hand,
A
中全排列有
n!
个
On the other hand, for each
Ai
,做
A
中全排列如下:
x1x2...x|Ai|y1y2...yn−|Ai|
其中
x1x2...x|Ai|
是
Ai
中元素的全排列。
y1y2...yn−|Ai|
是补集的全排列。
注意到,当
i≠j
时,对应的全排列不同。(否则两个子集有包含关系)
由lemma: m(n[n/2])≤∑mi=11(n|Ai|)≤1 ,得证。
2.Kummer Theorem
n=(nknk−1...n0)p
m=(mkmk−1...m0)p
n−m=(dkdk−1...d0)p
vp((nm))
equals to the aomunt of carry-bit: L
when adding (n-m) and m.
proof:
vp(n!)=∑∞l=1[npl]=n1+n2(1+p)+...+nk(1+p2+...+pk−1)=n−(n0+n1+...+nk)p−1
Thus
vp((nm))=vp(n!)−vp((n−m)!)−vp(m!)=∑ki=0(mi+di−ni)p−1=L
一个有趣的结论:
lcm((n0),(n1),...,(nn))=lcm(1,2,...,n+1)n+1
src: https://arxiv.org/pdf/0906.2295v2.pdf
3.Lucas Theorem
n=(nknk−1...n0)p
m=(mkmk−1...m0)p
(nm)≡∏ki=0(nimi)(modp)
proof:
算两次,首先考察
(1+x)n
,
xm
系数为
(nm)=LHS
.
然后,
(1+x)n=(1+x)∑j=kj=0njpj≡∏j=kj=0(1+xpj)nj
RHS=[xm]∏j=kj=0(1+xpj)nj