zoukankan      html  css  js  c++  java
  • 从欧拉定理理解小凯的疑惑

    小凯的疑惑:给定正整数(a perp b),对于(x,y ge 0),求出(ax + by)无法表示的最大正整数。

    一个经典思路是从同余最短路的角度看待这个问题:建立一个编号0~b-1的图,对于(0 le i le b-1),建边({i,(i+a) mod b,a}),初始时令(dis_0=0),跑dijkstra。这样我们就可以对于模b剩余系下的每一个值,求出能够表达它的最小正整数,然后答案就是(max{dis_i}-b)

    然而这样建出的图有一个重要性质,就是它恰好是一个长度为b的环,因此答案为(a(b-1)-b=ab-a-b),也就得到我们想要的结论。那么现在的关键问题就在于如何证明它是一个环,也即证明({0,a,2a,...,(b-1)a})在模b意义下两两不同余。

    简单反证一下即可,假设(exist 0 le i < j le b-1),使得(ai equiv aj pmod b),即(a(i-j) equiv 0 pmod b implies b|a(i-j))。由于已知(a perp b),那么(b|i-j implies i-j equiv 0 pmod b implies i equiv j pmod b),显然与已知不符,假设不成立,证毕。

    类比一下欧拉定理的证明过程,我们取了与b互质的数组成的集合(A={x_1,x_2,...,x_{phi(b)}}),给其中每一个元素乘上了a得到(B={ax_1,ax_2,...,ax_{phi(b)}}),因为B中每个元素与b互质且两两不同余,于是有(A=B)。这里的过程其实是类似的。

  • 相关阅读:
    Android读写SD卡
    如何用c语言调用c++做成的动态链接库
    css3 翻转和旋转的区别
    若干道Swift面试题
    可控制导航下拉方向的jQuery下拉菜单代码
    Mysql主从备份和SQL语句的备份
    .net 读书笔记
    .NET框架体系结构
    原则干货存起来
    【转】php和java之间rsa加密互通
  • 原文地址:https://www.cnblogs.com/-SingerCoder/p/14827633.html
Copyright © 2011-2022 走看看