模运算(包含模的逆运算)-程序员宅基地

技术标签: 学习  Powered by 金山文档  哈希算法  数据安全算法  

模运算,就是取余数,在计算机语言中用%来表示。举个简单的例子,3 % 5 = 3。结果的取值范围在 0 与模之间,例如 res = X mod Y, 那么 res 的取值范围应该是[0,Y-1]。结果也可以用负数来看表示,3 % 5 = -2。 一般用正数的表现形式,如果出现负数,我们也该知道是怎么来的。

运算规律

模运算中同样有一些数学公式大家需要记住,基本跟四则运算比较相似。乘法大家需要注意下。

(A + B) % M = (A % M + B % M) % M

(A - B) % M = (A % M - B % M) % M

(A * B) % M = [(A % M) * (B % M)] % M

(A^n) % M = [(A % M)^n] % M

同样,模运算也满足结合律,分配律,交换律:

((A + B) % M + C) % M == (A + (B + C)%M) %M

((A * B) % M * C) % M == (A * (B * C)%M) %M

(A + B) % M == (B + A) % M

(A * B) % M == (B * A) % M

(A + B) % M == (A % M + B % M) % M

[(A + B) % M * C] % M == [(A * C) % M + (B * C) % M] % M

模的逆元

在数学中,如果两个数a和b满足 a * b ≡ 1 (mod m),则我们称b是a在模m下的逆元。

通常表示为b = a^(-1) (mod m)。在模运算中,逆元一定存在于模数的范围内,因此逆元必须是正整数。如果逆元为负数,则与模运算的定义不符。因此,模的逆元一定是非负整数。

计算逆元最简单直观的方式就是辗转相除法,下面我将结合实例来讲解。

8^(-1) mod 29:

注意,此步骤替换的数均为每次计算的余数。如果最后出现的是负数,我们需要把它变成正数范围。

高阶次项取模:

比如 4^8 mod 59, 我们需要把次数一步步化小。

这就是我目前所掌握到的模的运算,如有问题,感谢您的指正!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43305350/article/details/129337799

智能推荐

力扣[LeetCode].1. 两数之和_力扣主函数-程序员宅基地

文章浏览阅读210次。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> heap; //新建一个哈希表,把每一个数值映射为他的下标 for(int i=0;i<nums.size();i++){ //遍历每个数 int r = t._力扣主函数

CRNN英文字符识别代码运行测试 | 论文理解 | 【OCR】_crnn在线测试-程序员宅基地

文章浏览阅读438次。CRNN 英文识别 代码运行测试环境搭建运行过程如下所测试代码https://github.com/meijieru/crnn.pytorch环境搭建参照: requirements.txt 文件lmdb==0.97numpy==1.17.2Pillow==6.1.0six==1.12.0torch==1.2.0torchvision==0.4.0一个普通的 pytorch1.2 环境搭建操作,实测 安装 torch1.4 一样可以运行:conda create_crnn在线测试

戴尔惠普华硕笔记本Fn键反了,按F1、F2等键出来Fn+F1、F2的效果_hp笔记本的fn倒置了-程序员宅基地

文章浏览阅读3.2k次。惠普笔记本,几天按f12调试的时候,笔记本直接睡眠了,试验了一番发现Fn键反了按F12等键出来Fn+F2的效果,按F1到F12等键出来Fn+F1到F12的效果。在网上寻找一番答案发现是是fn键被锁住了。找到键盘上的一个Fnlock(缩写FnLk)或Numlock键,然后按Fn+Fnlock/Numlock解锁参考文章:https://jingyan.baidu.com/article/ff4..._hp笔记本的fn倒置了

java togmtstring()_JavaScript中toGMTString函数-程序员宅基地

文章浏览阅读570次。JavaScript中toGMTString函数JavaScript中toGMTString函数方法是返回一个日期,该日期用格林威治标准时间 (GMT) 表示并已被转换为字符串。使用方法:dateObj .toGMTString()JavaScript中toGMTString函数方法已经过时,之所以仍然提供这个方法,只是为了提供向后的兼容性。推荐改用 toUTCString 方法。toGMTStr..._togmtstring

链表一:寻找环形链表的入口点-程序员宅基地

文章浏览阅读3.2k次,点赞10次,收藏12次。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码_环形链表的入口

python教程lxml详解-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏17次。解析XML和HTML文档:lxml提供了两种主要的解析器,分别是基于C的解析器和基于Python的解析器。基于C的解析器使用libxml2库,速度较快,而基于Python的解析器则更加容易安装和使用。使用lxml的解析器,可以将XML和HTML文档解析成一个树状结构的Element对象,从而可以通过操作Element对象来访问、修改和操作文档的内容。Element对象:Element对象是lxml中的主要对象,它代表了XML或HTML文档中的一个元素或标签。_lxml

随便推点

不堪回首的青春回忆,用群晖NAS网络存储记住吧_群晖可以备份qq聊天记录吗-程序员宅基地

文章浏览阅读786次。青春是热血、朝气、尴尬等等名词的汇聚,对于90后来说非主流、大头贴等一堆不堪回首的记忆充满了我们的记忆。往往这些记忆都保存在了放着DJ等非主流音乐的空间中,永远封锁只对自己开放。随着QQ也开通了账号注销功能,保存在QQ空间的数据也不是永远存在了。虽然这是一段我们不堪回首的青春记忆,虽然现在最年轻的00后都已经19岁了,青春的世界不再属于90后了。但是回忆还是要存储下来的,可是值得90后回忆的不仅..._群晖可以备份qq聊天记录吗

private和public_class public和private-程序员宅基地

文章浏览阅读2.7k次。一、结构体/类的定义和实现分离,代码可读性更强(非必须)//xxx.h头文件struct Test{ int x; int y; int z; void Init(int x,int y,int z); void Function1(); void Function2(); void Function3();}//xxx.cpp#include<stdio.h>#include"structure.h"void Test::Init(int x, int y, _class public和private

php 上传图片 缩略图,PHP 图片上传类 缩略图-程序员宅基地

文章浏览阅读70次。/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上..._php上传图片 缩略图

scrapy爬虫框架_3.6.1 scrapy 的版本-程序员宅基地

文章浏览阅读737次。入门案例class QuotesSpider(scrapy.Spider): name = 'quotes' start_urls = [ 'http://quotes.toscrape.com/tag/humor/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'aut_3.6.1 scrapy 的版本

微信支付——统一下单——java_小程序统一下单接口-程序员宅基地

文章浏览阅读625次,点赞10次,收藏10次。这边是用户购买vip的一个支付代码,使用统一下单,主要是jsapi支付。_小程序统一下单接口

(已解决)报错 ValueError: Tensor conversion requested dtype float32 for Tensor with dtype resource-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏2次。tensorflow 1.14 里自带的 layer 与 keras layer 数据类型冲突的问题。_valueerror: tensor conversion requested dtype float32 for tensor with dtype

推荐文章

热门文章

相关标签