ACM:数论专题(6)——模线性方程组

本文深入探讨了ACM竞赛中数论专题的模线性方程组问题,通过实例解析算法思路,阐述解题策略,并提供程序代码实现。
摘要由CSDN通过智能技术生成
题目描述:
     给定n组除数Mi和余数Ri (1≤i≤n, Ri<Mi), 定义方程组如下:
        x % M1 = R1
        x % M2 = R2
        x % M3 = R3
            ...
        x % Mn = Rn

求解满足以上方程组的x的最小正整数解。

解答:
    题目中定义的方程组称为“模线性方程组”,我们可以采用一种迭代的方式进行求解。

·基本情况:
    首先考虑方程组中只包含2个方程的情况:
        x % M1 = R1..................................................(F1)
        x % M2 = R2..................................................(F2)

假设: x = k1 * M1 + R1, x = k2 * M2 + R2,此时:
        k1 * M1 + R1 = k2 * M2 + R2
    =>  k1 * M1 - k2 * M2 = R2 - R1..................................(T)

M1, M2, R1, R2 都是已知的常数,这样就得到了一个以k1, k2为未知数的二元一次方程。此时,只要找到(T)式的一组整数解,然后代入,就可以找到满足由方程(F1) 和 (F2)的一个x解。
    
    求解(iii)式的过程可以利用拓展欧几里得算法 简要说明其步骤如下:
    记:A = M1, B = M2, C = R2 - R1, x = k1, y = k2那么方程(iii)就可以抽象为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值