某电信息安全与密码学实验 中国剩余定理 python

这篇博客介绍了如何使用Python实现中国剩余定理来求解同余方程组,包括实验背景、原理、算法步骤,并提供了源代码和注释。通过判断正整数是否两两互素,计算模逆,最终求得唯一解。

@TOC

中国剩余定理实验

实验目标:使用中国剩余定理求解同余方程组
实验环境:window10系统,python,pycharm编译器

实验背景及原理

实验背景及原理:
设正整数 𝒎𝟏, 𝒎𝟐, ⋯ , 𝒎𝒌 两两互素,对任意整数 𝒂𝟏, 𝒂𝟐, ⋯ , 𝒂𝒌,
一次同余方程组:
{█(x ≡ a1(mod m1)@x ≡ a2(mod m2)@x ≡ ak (mod mk))┤⋮
在模𝒎意义下有唯一解,该解可表示为
𝒙 ≡ 𝑴𝟏𝑴𝟏−𝟏𝒂𝟏 + 𝑴𝟐𝑴𝟐−𝟏𝒂𝟐 + ⋯ + 𝑴𝒌𝑴𝒌−𝟏𝒂𝒌(𝒎𝒐𝒅 𝒎)
其中
𝒎 = 𝒎𝟏𝒎𝟐 ⋯ 𝒎𝒌,𝑴𝒋 = 𝒎/ 𝒎𝒋,𝑴𝒋𝑴𝒋−𝟏≡𝟏(𝒎𝒐𝒅𝒎𝒋),𝒋 = 𝟏,𝟐,⋯𝒌。
算法步骤:
(1) 判断正整数 𝒎𝟏, 𝒎𝟐, ⋯ , 𝒎𝒌 是否两两互素;是,则继续,
否则跳出,输出“不能直接利用中国剩余定理”。
(2) 计算 𝑴𝒋−𝟏 (𝒎𝒐𝒅𝒎𝒋)
(3) 计算 𝒙𝒋≡ 𝑴𝒋𝑴𝒋−𝟏𝒂𝒋 (𝒎𝒐𝒅 𝒎)
(4) 计算 𝒙 ≡ ∑_(j=1)^k▒〖xj (mod m)〗 。
在这里插入图片描述

在这里插入图片描述

流程图

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值