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

算法中的数学:费马小定理

1.同余式

定义:如果两个整数a,b模p的余数相同,那么a,b就是模p的同余式

记作:a \equiv b \pmod{p}

性质:

1.同加性:若a和b同时加一个整数,那么他们加完之后的两个数模p仍为同余式
2.同乘性:若a和b同时乘一个整数,那么他们乘完之后的两个数模p仍为同余式

但是他并不满足同除性

2.费马小定理

定义:若p为质数且a,b互质,那么a^{p-1} \equiv 1 \pmod{p}

也就是说a^p-1%p == 1

3.乘法逆元

若a,b互质,且满足ax % b == 1,那么称x为a模m的乘法逆元,记作a^-1.

eg: a == 3 , b == 2,此时x == 1/3/....

那么1/3/...等数就叫3模2的乘法逆元

应用场景:
当我们需要计算(a/b)%c的时候,如果a可被b整除,那么我们可以正确得到结果,但是如果我们的a无法被b整除,此时直接先计算除法就会吹出现精度丢失的问题

而乘法逆元可以很好的解决这个问题:

所以我们只要求出a模c的乘法逆元来替换b^-1次方即可

疑问:如何求乘法逆元?
答:费马小定理+快速幂

当c为质数,且a,c互质的时候,我们可以用费马小定理

http://www.xdnf.cn/news/623791.html

相关文章:

  • redis配置带验证的主从复制
  • Windows 中动态库.dll 的 .lib 文件有什么作用?
  • x64_ubuntu22.04.5安装:cuda driver + cuda toolkit
  • 【Linux手册】Linux权限:系统世界的“门禁卡”
  • SOC-ESP32S3部分:10-GPIO中断按键中断实现
  • MySQL快速入门篇---联合查询
  • Vanna.AI:用检索增强技术革新SQL查询生成
  • Spark 中,map和foreach的区别
  • Spark on YARN 的运行架构总览
  • 构建跨平台C/C++项目的基石:现代构建套件设计指南
  • Python包__init__.py标识文件解析
  • 操作系统的内核态和用户态场景
  • 最小均方误差(MMSE)滤波器及其改进版
  • skywalking 10.2 源码编译
  • Kafka Streams 和 Apache Flink 的无状态流处理与有状态流处理
  • 伴随矩阵 -- 代数余子式矩阵的转置
  • 【PostgreSQL】数据探查工具1.0研发可行性方案
  • 数据结构与算法——链式二叉树
  • 讲述我的PLC自学之路 第九章
  • P2089 烤鸡
  • 【Elasticsearch入门到落地】13、DSL查询详解:分类、语法与实战场景
  • Python模块中的私有命名与命名空间管理:深入解析与实践指南
  • 刷题 | 牛客 - js中等题-下(更ing)30/54知识点解答
  • DPDK QDMA 驱动详解 - tx
  • S32K开发环境搭建详细教程(二、添加S32K3xx SDK)
  • python语法学习
  • 第十五章:数据治理之数据目录:摸清家底,建立三大数据目录
  • stable diffusion论文解读
  • 再论自然数全加和-1
  • 09 接口自动化-用例管理框架pytest之allure报告定制以及数据驱动