• 线性方程整数解,扩展欧几里得解分析


    符号说明

    (y_{0}=left ( a_{1},a_{2},...,a_{n} ight ) 即y_{0}是a_{1},a_{2},...,a_{n})的最大公因数
    (d|a_{i}(d整除a_{i},a_{i}是d的倍数))

    定理

    (设a_{i}in Z ,A=left { y|y=sum_{i=1}^{n}a_{i}x_{i},x_{i}in Z,1leq i leq n ight })
    如果(y_{0})是集合A中最小的正数,则(y_{0}=left ( a_{1},a_{2},...,a_{n} ight ))

    证明

    设d是(a_{1},a_{2},...,a_{n})的一个公因数,(d|a_{i}),则(a_{1},a_{2},...,a_{n})的线性组合都是d的倍数
    (d|y_{0}=sum_{i=1}^{n}a_{i}x'_{i},故而dleq y_{0})
    (y_{0}=sum_{i=1}^{n}a_{i}x'_{i},对任意的y=sum_{i=1}^{n}a_{i}x_{i},存在q,rin Z,这里两个式子的a_{i}相同,使得y=qy_{0}+r)
    (r=y-qy_{0}=a_{1}(x_{1}-qx'_{1})+...+a_{n}(x_{n}-qx'_{n})in A)
    因为r小于(y_{0},若r eq 0)则r是A中比(y_{0})还小的正整数,这与(y_{0})是A中最小的正整数矛盾,故而r=0,(y_{0})|y
    显然(a_{i}in A,在y=sum_{i=1}^{n}a_{i}x_{i}中取a_{i}系数x_{i}=1,其他所有x=0,故y_{0}|a_{i})
    由此可得(y_{0}也是a_{1},a_{2},...,a_{n}的公因数而dleq y_{0},所以y_{0}=left ( a_{1},a_{2},...,a_{n} ight ))
    ---------------------------------------------------------------------------------------

    正题开始

    以上为数论基础
    对于ax+by=gcd(x,y)一定有整数解,对此可以用扩展欧几里得算法计算出整数x,y
    对于右边不是最大公因数的方程,如果要求得是方程ax1+by1=n,n!=gcd(x,y),但gcd(x,y)|n
    则在求解ax+by=gcd(x,y)后,两边同时乘以一个系数m即可,m=n/gcd(x,y)
    amx+bmy=gcd(x,y)*m=n
    对应x1=mx,y1=my
    综上所述,ax+by=n在gcd(x,y)|n时有整数解,可以用扩展欧几里得算法简答修改一下得到解
    对于扩展欧几里得算法,这里不进行赘述

  • 相关阅读:
    【python-leetcode142-快慢指针】环形链表2
    SpringMvc 拦截器
    什么是RESTful?RESTfule风格
    Http协议
    SpringMVC Mock测试
    Oracle 创建用户,赋予指定表名/视图只读权限
    添加junit和spring-test还是用不了@Test和@RunWith(SpringJUnit4ClassRunner.class)注解
    SpringMVC 数据交互
    SpringMvc commons-fileupload图片/文件上传
    SpringMvc 异常处理器
  • 原文地址:https://www.cnblogs.com/lxzbky/p/13920354.html
Copyright © 2020-2023  润新知