Erdos Ginzburg Ziv 定理的一个证明
定理描述
给定 n∈Z+ ,可以从 2n−1 个整数中选出 n 个整数,其和为 n 的倍数。
定理证明
第一部分 对n为素数
设a1,⋯a2p−1表示这2p−1个数。ki,li表示求和的第 i 个数的下标,k1<⋯<kp,l1<⋯<lt,ui表示ali的次数,ui>0。vi表示aki的次数,vi⩾0。
S=∑k1<⋯<kp(p∑i=1aki)p−1=∑k1<⋯<kp⎛⎜
⎜
⎜⎝∑v1+⋯+vp=p−1vi⩾0(p−1v1,⋯,vp)t∏i=1aviki⎞⎟
⎟
⎟⎠=∑k1<⋯<kp⎛⎜
⎜
⎜⎝n∑t=1∑{l1,⋯,lt}⊂{k1,⋯,kp}∑u1+⋯+ut=p−1ui>0(p−1u1,⋯,ut)t∏i=1auili⎞⎟
⎟
⎟⎠=p−1∑t=1∑{l1,⋯,lt}⊂{1,⋯,2p−1}⎛⎜
⎜
⎜⎝∑u1+⋯+ut=p−1ui>0∑{l1,⋯,lt}⊂{k1,⋯,kp}(p−1u1,⋯,ut)t∏i=1auili⎞⎟
⎟
⎟⎠=p−1∑t=1∑{l1,⋯,lt}⊂{1,⋯,2p−1}⎛⎜
⎜
⎜⎝∑u1+⋯+ut=p−1ui>0(2p−1−tp−t)(p−1u1,⋯,ut)t∏i=1auili⎞⎟
⎟
⎟⎠
又由于p|(2p−1−tp−t),∀t∈{1,⋯,p−1},所以p|S,S≢(2p−1p)(modp)。若对任意{k1,⋯,kp}⊂{1,⋯,2p−1},p/|p∑i=1aki,则(p∑i=1aki)p−1≡1(modp),对所有{k1,⋯,kp}⊂{1,⋯,2p−1}求和即知矛盾。
第二部分 对n为合数
若命题不正确,我们取所含素因子总次数最少的数n,设n=pq,其中p为素数,q=np必满足对任意2q−1个数存在q个数,其和为q的倍数。
于是在2pq−1个数中,我们每次从其中挑选出p个数,并从中删去,直到剩下数的个数少于2p−1。可知挑选出了2q−1组p个数和为p的倍数,于是可从中挑出q组和为pq的倍数,这q组中共n=pq个数,其和为n的倍数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix