当前位置: 首页 > wzjs >正文

做加密网站全站加密的最低成本化妆品推广软文

做加密网站全站加密的最低成本,化妆品推广软文,国内一家做国外酒店团购的网站,橙色企业网站源码目录 什么是乘法逆元? 扩展欧几里得算法: 算法的形象化解释:一场分解游戏 实际操作示例一 实际操作示例二:扩展欧几里得算法在 GF(1759) 中求解 550 的乘法逆元 初始化 步骤详解 结论 扩展欧几里得算法不仅能帮助我们找到…

目录

什么是乘法逆元?

扩展欧几里得算法:

算法的形象化解释:一场分解游戏

实际操作示例一

实际操作示例二:扩展欧几里得算法在 GF(1759) 中求解 550 的乘法逆元

初始化

步骤详解

结论


扩展欧几里得算法不仅能帮助我们找到两个数的最大公约数,还能让我们在模运算中轻松找到乘法逆元。(网络安全的公钥加密时求解密钥)


什么是乘法逆元?

在模运算中,乘法逆元指的是:对于一个数 b,存在一个数 b^{-1},使得 b * b^{-1} ≡ 1 mod m。简单来说,就像在实数世界中,每个数都有一个倒数(比如 1/2),在模世界中,每个数也有一个特殊的“伙伴”,让它们的乘积等于 1

但并不是所有数都有乘法逆元!只有当 bm 互质(即它们的最大公约数是 1)时,b 才存在乘法逆元。扩展欧几里得算法就是用来找到这个逆元的利器。


扩展欧几里得算法:

扩展的 EUCLID(m, b)

  1. (A1,A2,A3)←(1,0,m); (B1,B2,B3)←(0,1,b)
  2. if B3=0 return 不存在乘法逆元
  3. if B3​=1 return B2=b-1 mod  m
  4. Q=⌊A3/B3⌋(向下取整)
  5. (T1,T2,T3)←(A1−QB1,A2−QB2,A3−QB3)
  6. (A1,A2,A3)←(B1,B2,B3​)
  7. (B1,B2,B3)←(T1,T2,T3)
  8. goto 2

扩展欧几里得算法的核心是通过一系列的除法和替换操作,逐步推进到最终的解。以下是算法的步骤:

  1. 初始化
    AB 初始化为 (1, 0, m)(0, 1, b)。这里的 AB 分别代表我们将要操作的数对。

  2. 终止条件

    • 如果 B_3 (数对B的第三个数,即 b 的当前值)为 0,说明 bm 不互质,乘法逆元不存在。
    • 如果 B_31,说明我们已经找到解,此时的 B_2 就是 b 的逆元。
  3. 逐步逼近

    • 计算商 Q = floor(A_3 / B_3)
    • 更新 AB 的值,逐步缩小范围,最终逼近解。

通过这些步骤,算法会不断地将问题简化,直到找到解或者确认解不存在。


算法的形象化解释:一场分解游戏

试想一下,我们需要找到两个数 mb 的组合,使得它们的线性组合等于 1,也就是:
1 = x * m + y * b
这里的 y 就是 b 的乘法逆元。

扩展欧几里得算法就像是在拆解这些数,找到它们的“内在联系”。每一步操作,都像是拆掉一块砖,逐渐接近目标。


实际操作示例一

假设我们需要找到 b = 3 在模 m = 7 下的逆元。我们来看看算法是如何工作的:

  1. 初始化
    A = (1, 0, 7)B = (0, 1, 3)

  2. 第一轮操作

    • A_3 = 7B_3 = 3,计算 Q = floor(7/3) = 2
    • 更新 AB
      • A = (0, 1, 3)
      • B = (1, -2, 1)
  3. 第二轮操作

    • 现在 B_3 = 1,满足终止条件。
    • B_2 = -2,即 b^{-1} ≡ -2 mod 7
    • -2 转换为正数:-2 + 7 = 5,所以 3 * 5 ≡ 1 mod 7

实际操作示例二:扩展欧几里得算法在 GF(1759) 中求解 550 的乘法逆元

初始化

我们需要计算 550 和 1759 的扩展欧几里得算法,以找到贝祖系数。初始化步骤如下:

  • ( Q ): 商。
  • ( A_1, A_2, A_3 ): 初始值为 (1, 0, 1759)。
  • ( B_1, B_2, B_3 ): 初始值为 (0, 1, 550)。

步骤详解
第一步
  • Q = - : 没有商。
  • A_1 = 1 , A_2 = 0 , A_3 = 1759 : 初始化 A。
  • B_1 = 0 , B_2 = 1 , B_3 = 550 : 初始化 B 。
第二步
  • Q = 3 : 计算商 Q = A_3 / B_3 = 1759 / 550 = 3 。
  • T_1 = A_1 - Q * B_1 = 1 - 3 * 0 = 1 .
  • T_2 = A_2 - Q * B_2 = 0 - 3 * 1 = -3 .
  • T_3 = A_3 - Q * B_3 = 1759 - 3 *550 = 109 .
  • 更新 A  和 B :
    • A_1 = 0 , A_2 = 1 , A_3 = 550 .
    • B_1 = 1 , B_2 = -3 , B_3 = 109 .
第三步
  • Q = 5 : 计算商 Q = A_3 / B_3 = 550 / 109 = 5 。
  • T_1 = A_1 - Q * B_1 = 0 - 5 * 1 = -5 .
  • T_2 = A_2 - Q * B_2 = 1 - 5 * (-3) = 16 .
  • T_3 = A_3 - Q * B_3 = 550 - 5 * 109 = 5 .
  • 更新 A  和 B :
    • A_1 = 1 , A_2 = -3 , A_3 = 109 .
    • B_1 = -5 , B_2 = 16 , B_3 = 5 .
第四步
  • Q = 21 : 计算商 Q = A_3 / B_3 =109 / 5 = 21 。
  • T_1 = A_1 - Q * B_1 = 1 - 21 * (-5) = 106 .
  • T_2 = A_2 - Q * B_2 = -3 - 21 * 16 = -339 .
  • T_3 = A_3 - Q * B_3 = 109 - 21 * 5 = 4 .
  • 更新 A  和 B :
    • A_1 = -5 , A_2 = 16 , A_3 = 5 .
    • B_1 = 106 , B_2 = -339 , B_3 = 4 .
第五步
  • Q = 1 : 计算商 Q = A_3 / B_3 = 5 / 4 = 1 。
  • T_1 = A_1 - Q * B_1 = -5 - 1 * 106 = -111 .
  • T_2 = A_2 - Q * B_2 = 16 - 1 * (-339) = 355 .
  • T_3 = A_3 - Q * B_3 = 5 - 1 * 1 .
  • 更新 A  和 B :
    • A_1 = 106 , A_2 = -339 , A_3 = 4 .
    • B_1 = -111 , B_2 = 355 , B_3 = 1 .

结论

最终,当 B_3 = 1,我们得到 B_2 = 355。因此,元素 550 在域  GF(1759) 中的乘法逆元是 355。

http://www.dtcms.com/wzjs/220872.html

相关文章:

  • html模板 多列展示模板关键词优化推广策略
  • 自己做的网站能备案吗nba最新交易动态
  • 做企业网站怎么样广州最新疫情最新消息
  • 如何设置网站根目录成都seo专家
  • 刚做的网站适合做外链吗海底捞口碑营销案例
  • 网站系统解决方案宣传软文是什么
  • 不是做有网站都叫jwthnba最新排行榜
  • 聊城网站建设推广重庆网络推广
  • 如何用python做网站脚本语言产品推广方案
  • 建设网站图片seo策略分析
  • 网站建设 视频教程站长工具手机综合查询
  • 建网站非要做外链吗网络营销方案策划书
  • 四川建设厅住房和城乡建设厅seo搜索是什么
  • 聚企360做的网站百度推广员工工资怎么样
  • 用手机怎么做免费网站营销模式100个经典案例
  • 传统网站布局网络营销在哪里学比较靠谱
  • 哪个网站做图书广告好seo创业
  • 做音乐分享的网站爱站关键词挖掘软件
  • wpf做网站教程企业查询宝
  • 天猫网站设计教程中国十大网站有哪些
  • 做网站的教程视频中国2022年重大新闻
  • 网站开发者所有权归属40个免费网站推广平台
  • 用自己的电脑做服务器建网站厦门seo网站推广
  • 做布料的著名网站如何搜索关键词
  • 做新网站的swot分析b站刺激战场视频
  • 网站推广公司官网色盲眼中的世界
  • 上海哪家公司可以做网站舟山百度seo
  • 在国内做跨境电商怎么上外国网站关键词推广排名
  • 做药品的电商网站网址收录入口
  • 真人与狗做网站四川旅游seo整站优化站优化