首页 > 其他分享 >理解为什么要用乘法逆元

理解为什么要用乘法逆元

时间:2024-09-26 19:49:11浏览次数:3  
标签:法则 cdot 理解 逆元 引入 乘法 mod

我知道用小费马定理求乘法逆元,但是有的时候会忘记为什么要使用它
a p − 2 ⋅ a ≡ 1 ( m o d    p ) ,    w h e n    g c d ( a , p ) = 1 a^{p-2} \cdot a \equiv 1(mod\; p),\;when \;gcd(a,p) = 1 ap−2⋅a≡1(modp),whengcd(a,p)=1

在这里插入图片描述

  • 求 A / B m o d    p A / B \mod p A/Bmodp,万一 A 或者 B 太大了,无法算出怎么办?
    • 想引入模运算对不对?除法法则不存在嘿嘿!
    • 引入乘法逆元,改造式子 A ⋅ B − 1 m o d    p A \cdot B^{-1} \mod p A⋅B−1modp
    • 再应用乘法法则,引入模运算,使得中间结果维持在一个可表示的数据范围
  • 还是求那个,但是我直接给 A m o d    p A \mod p Amodp,这下 A 彻底算不了了,必须采用乘法法则,所以必须采用乘法逆元改除为乘

标签:法则,cdot,理解,逆元,引入,乘法,mod
From: https://blog.csdn.net/m0_73669127/article/details/142528068

相关文章

  • c语言中fork,exec和system函数的理解
    fork用于创建子进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次,但返回两次。在父进程中,fork返回新创建子进程的进程ID。在子进程中,fork返回0。如果出现错误,fork返回一个负值。包含在<unistd.h>中,是Unix系统特有的文件(Macos并不太清楚),因此需要......
  • 逆地理解析位置偏移如何解决
    有不少开发者在测试使用【维智物联全域定位】平台的逆地理编码API时,出现与实际位置偏移较大的情况,解决方式有两种:查看定位坐标是否准确,如是坐标偏移造成,需要先替换正确的坐标进行测试,注意使用正确的坐标系。坐标正确,地址不对,可以按照“地址+正确坐标+key+请求信息”......
  • 通过理解 Windows rollback attack 的基础架构,用户和管理员可以更有效地保护系统免受
    “Windowsrollbackattack”是一种针对Windows操作系统的攻击手法,具体涉及利用系统恢复或回滚功能来执行恶意行为。以下是关于这种攻击的简要说明:什么是WindowsRollbackAttack定义:这种攻击利用Windows系统的恢复功能(例如,系统还原点或回滚机制)来恢复到之前的状态,从而可......
  • 电商领域的数据革命:理解数据飞轮与数据中台的关系
    电商领域的数据革命:理解数据飞轮与数据中台的关系在当今的电子商务领域,数据不仅是基础资产,更是驱动业务增长的关键动力。本文将探讨数据飞轮与数据中台的概念,它们的相似性与差异,以及如何在电商业务中实现这些概念,从而推动业务转型和增长。数据中台的定义与目标数据中台,作为一个......
  • 面试官:谈谈你对IO多路复用的理解?
    “IO多路复用”是编程中常见的技术词汇,使用这种技术的框架有很多,如,Redis、Kafka、Netty、Nginx中都用到了此技术。那问题来了,什么是IO多路复用?它的具体实现技术有哪些?这些技术之间有什么区别?今天我们就来简单的探讨一下。1.什么是IO多路复用?IO多路复用技术是一种允许单个......
  • 深入理解并发原子性、可见性、有序性与JMM内存模型
    1.并发三大特性并发编程Bug的源头:原子性、可见性和有序性问题1.1原子性一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作(64位处理器)。不采取任何的原子性保障措施的自增操作并不是......
  • Java单体服务和集群分布式SpringCloud微服务的理解
    单体应用存在的问题1.随着业务的发展开发变得越来越复杂。2.修改或者新增,需要对整个系统进行测试、重新部署。3.一个模块出现问题,很可能导致整个系统崩溃。4.多个开发团队同时对数据进行管理,容易产生安全漏洞。5.各个模块使用同一种技术进行开发,各个模块很难根据实际情况......
  • 从 SQL 和 Java 的对比理解集合化,SQL 到底比 Java 优势在哪?
    同样的数据计算任务,用SQL写和用Java写,后者常常会长出数倍。代码长不仅仅是写起来很繁琐,也不利于理解整体业务逻辑结构,算法过程都湮没在细节中。为什么Java会比SQL长这么多?我们来回答这个问题,并引出程序语言的集合化概念。首先是针对集合的运算能力,这个很容易理解。......
  • 对软件工程的理解
    软件工程(SoftwareEngineering)是以工程化的方法来设计、开发、维护和管理软件系统的学科。它不仅仅关注于编写代码,更注重整个软件开发生命周期中的各个阶段,以确保软件系统的高效性、可维护性和可扩展性。我对软件工程的理解可以从以下几个方面来谈:系统化方法:软件工程采用系统......
  • 深入理解 Nuxt.js 中的 app:created 钩子
    title:深入理解Nuxt中的appcreated钩子date:2024/9/26updated:2024/9/26author:cmdragonexcerpt:摘要:本文深入介绍了Nuxt.js中的app:created钩子,包括其触发时机、用途及使用方法。通过创建Nuxt项目、编写插件实现钩子、注册全局组件和配置,展示了在应用初始......