51Nod-1079-中国剩余定理
来源:互联网 发布:软件测试项目计划书 编辑:程序博客网 时间:2024/06/06 03:16
51Nod-1079-中国剩余定理
1079 中国剩余定理一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。例如,K % 2 = 1, K % 3 = 2, K % 5 = 3。符合条件的最小的K = 23。Input第1行:1个数N表示后面输入的质数及模的数量。(2 <= N <= 10)第2 - N + 1行,每行2个数P和M,中间用空格分隔,P是质数,M是K % P的结果。(2 <= P <= 100, 0 <= K < P)Output输出符合条件的最小的K。数据中所有K均小于10^9。Input示例32 13 25 3Output示例23
解题方法
记住模的数学表达式:
中国剩余定理给出了以下的一元线性同余方程组:
求解步骤:
第一步:求出每个Mi
第二步:求出Mi模mi的数论倒数ti
第三步:求出方程组的解:
该定理的细节可以看维基百科上给出的证明——中国剩余定理
维基需要翻墙,可以去看看百度给出的证明——中国剩余定理
解题代码
while True: try: n, cnt= int(input()), 1 A = [] #cnt为全部质数的乘积 for i in range(n): a, b = list(map(int, input().split())) A.append((a,b)) cnt = cnt * a ans = M = t = 0 for (i, a) in A: M = cnt/i #求M的数论倒数t for k in range(i): if (M*k)%i == 1: t = k break ans += a*t*M #方程组的解ans ans = int(ans%cnt) print(ans) except EOFError: break
阅读全文
0 0
- 51nod 1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod--1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod:1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod-1079中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51nod 1079 中国剩余定理
- 51Nod-1079-中国剩余定理
- 51nod-1079 中国剩余定理
- 51Nod-1079-【数学】中国剩余定理
- 51nod 1079 中国剩余定理
- 51Nod 1079:中国剩余定理
- 【51 nod 1079 中国剩余定理】
- 51Nod-1079 中国剩余定理
- MOOC清华《面向对象程序设计》第4章:explicit禁止自动类型转换实验
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结
- 高一结束的一些总结
- lvm逻辑卷管理
- 图形用户界面编程
- 51Nod-1079-中国剩余定理
- C++中的inline用法
- CodeForces
- 【论文笔记】Learning to log
- Java中反射的知识点
- Packets-poj1017
- 并查集模板
- 程序猿初长成(一个程序猿的艰辛入门之旅)
- java.security.InvalidKeyException: Illegal key size