zoukankan      html  css  js  c++  java
  • 数论:不定方程

    数论:不定方程

    最普通的不定方程是这样的:

    [ax+by=c ]

    对于不定方程的整数解,有一个结论:只要c能被gcd(a,b)整除,那么方程有整数解.

    为了表示清楚,设gcd(a,b)=q,a=qn,b=qm,c=qo.

    这时设a,b,c符合条件,那么n,m,o都是整数,且n,m互质.

    对于m,n,一定可以有两个整数u,v,符合nu+mv=1.

    也就是说,对于某一个u,符合nu%m=1,此时nu/m=v.并且在1<=u<m时,u唯一.

    这时a+b=nq+mq=q(n+m).

    只要x=u,y=v,那么方程左边就是nqu+mqv=q(nu+mv)=q.

    只要将x和y同时乘c/q,那么方程左边就等于q(c/q)=c.

    此时方程有整数特解x=uc/q,y=vc/q.当然,这里的u,v,q是我们自己定义的变量.

    q=gcd(a,b),u=(a/q)的逆元(%n),v=(b/q)的逆元(%m).

    这时就可以写出完整公式:

    [inom{x=frac{ua}{q}}{y=frac{cb}{q}} ]

    只要有一组特解,就能求出所有解.

    因为x每次增加m,那么xa就增加ma,又因为ma=mnq=[a,b],所以x增加m,ax就增加[a,b]

    所以对x来说,每个m是一循环,因为每个增加[a,b]都可以被b整除,所以当特解x增加m时,y只要减少n就能使by减少x,使等式仍然成立.

    m=b/gcd(a,b)

    n=a/gcd(a,b)

    所以就有了通过特解求所有整数解的公式:(t为任意整数)

    [inom{x=x_0+frac{bt}{q}}{y=y_0-frac{at}{q}} ]

    这便是解二元一次不定方程的方法了.

  • 相关阅读:
    JAVA web数据库登录界面
    JAVA web之相关名词大调查
    继承与多态课后
    第六周课后作业 02
    凯撒密文问题
    定义一个类,使用静态和构造随时知道定义了几个变量(第五周课后01)
    NAIPC2018
    [学习笔记]网络流
    Rikka with Prefix Sum
    Traffic Network in Numazu
  • 原文地址:https://www.cnblogs.com/Wild-Donkey/p/12358496.html
Copyright © 2011-2022 走看看