这肯定是学证明了,看这篇文章
补充一下细节
首先,m的范围应该是[0,b−1]
然后,当m取不同值的时候,ma%b一定为不同值(这个性质确实有点奇特,可以记下来)
反证,如果m1a≡m2a(modb)且<<0≤m1<m2≤b−1,那么就有b|(m2−m1)a,题目给出了a,b互质,所以说一定有b|(m2−m1),然而<<m2−m1<b,显然不可能
这就是为什么我们要把m的范围限制在[0,b−1]。模运算相当于一个等价关系,由于当m取不同值的时候,ma%b一定为不同值,所以我们可以把ma作为一个划分块的代表元素
我们也可以证明,当x的范围为[0,b−1]的时候,n=ax+by的表示方法唯一(指当n,a,b定了之后,(x,y)唯一,如果存在的话)
仍然反证,设n=ax1+by1=ax2+by2(显然x1≠x2,不然的话y1=y2,这样就是相同的(x,y)了),则有ax1≡ax2(modb),根据我们上面的推导,这是不可能的
当然这里也可以直接按照等价类来理解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构