首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求非标准的同余方程组的解法解决思路

2012-03-08 
求非标准的同余方程组的解法由于剩余定理要求x≡a[i](modm[i])i1,,,n中的m[i]两两互素,但对于m[i]不是两两

求非标准的同余方程组的解法
由于剩余定理要求
    x   ≡a[i]   (mod   m[i])   i=1,,,n
中的m[i]两两互素,但对于m[i]不是两两互素的又怎么解呢?
比如如何解下面方程组:
x=8   mod   15
x=5   mod   8
x=13   mod   25
,请用例子说明

[解决办法]
不懂中国剩余定理(孙子定理),写了个穷举算法,不要见笑。

#include "stdafx.h "
/*
由于剩余定理要求
x ≡a[i] (mod m[i]) i=1,,,n
中的m[i]两两互素,但对于m[i]不是两两互素的又怎么解呢?
比如如何解下面方程组:
x=8 mod 15
x=5 mod 8
x=13 mod 25
,请用例子说明

*/

void test()
{
int MM= 15 * 8 * 25/5; // LCM(15,8,25)
for (int i=0;i <MM;i++)
{
if (i % 15==8 && i % 8==5 && i % 25==13)
{
printf( "x= %d * k + %d (k=0,1,2,3,4,5..)\n ",MM,i);
}
}

}

int main(int argc, char* argv[])
{
test();
return 0;
}

热点排行