分数取模

分数取模(快速取模法+小费马定理) 这周打了牛客竞赛周赛,结果在第一道题就卡死了(呜呜呜) 这是原题牛客练习赛49 拿到题后,本蒟蒻想着不就是一道排序题吗,就直接写了一个快速排序输出,结果直接WA了。 百思不得其解,这时后台发来了一个广播消息:提示:如果不能整除,输出分数取模后的结果。 what???分数取模,虽然刚刚学过密码学的时候接触过,但不知道算法怎么写啊,果断地去百度了一下,找到了小费马定理:a^p-1 mod p = 1 ... 阅读详情

这里介绍一种分数取模的代码:

假设要求  \frac{1}{a}\quad mod \quad p

这里要引用小费马定理  a^{p-1}\quad mod \quad p = 1 \quad mod \quad p (有兴趣的可以百度查下证明过程)  ,这里对这个公式做点改动

\because \quad a^{p-1} \quad = a^{p-2}\times a

\therefore \quad (a^{p-2}\times a)\quad mod \quad p = 1\quad mod\quad p

\therefore \quad a^{p-2}\quad mod \quad p = a^{-1}\quad mod\quad p

在代码里面,我们可以通过扩展欧几里得定理来求一个数的模,但是扩展欧几里得暂时还不能求分数的模,那么这里可以将这个分数的取模换成对整数求模来得出相同的结果,也就是说把 \quad \frac{1}{a}\quad mod \quad p \quad 这个问题转化求 \quad a^{p-2}\quad mod \quad p

现在把代码放上来:

long long fast_mod(long long a,long long b) {
	long long r = 1;
	a %= mod;
	while (b) {
		if (b & 1) r = (r*a) % mod;
		a = (a*a) % mod;
		b >>= 1;
	}
	//cout << r << endl;
	return r;
}

 

同样的,如果分子不为1,那么 可以用(m\times a^{-1}) \quad mod \quad p = ((m\quad mod\quad p)\times (a^{-1}\quad mod\quad p))\quad mod \quad p(这是取模的运算规则,可以在百度查找一下,对取模十分有用) 

 

 

分数(小数)取模 利用逆元 python 在腾讯的一次笔试中,要求对分数取模 4/3 对1000000007 取余结果是333333337 1. 利用费马小定理 # 计算 x的y次方 对mod取模 def power(x, y, mod): r = 1 while( y ): if y & 1: r = (r * x) % mod x = (x... 阅读详情

相关推荐

乘法逆元、分数取模

文章目录欧几里得算法扩展欧几里得算法乘法逆元模板题目代码欧拉定理线性递推分数取模费马小定理参考文献: 欧几里得算法 众所周知,欧几里得算法gcd⁡(a,b)\gcd(a,b)gcd(a,b)以辗转相除的形式求出两数的最大公因数,那么使用等式改写一个gcd⁡\gcdgcd的过程,例如求gcd⁡(6371,2890)\gcd(6371,2890)gcd(6371,2890)如下:6371=2890∗2+11132890=1113∗2+5831113=583∗1+530583=530∗1+53530=53∗1+0

zclll的博客 866

分数取模(ksm+小费马定理)

代码实现 分数取模 (a/b)%M;

qq_62853360的博客 656

蓝桥杯数论题解:快速幂取模定位分数小数第n位

在算法竞赛和编程实践中,处理大数运算和分数与小数转换是常见挑战。分数化为小数时,其结果要么是有限小数,要么是无限循环小数,这背后涉及模运算和循环节的核心原理。模运算通过研究余数的周期性,为解决大指数计算提供了理论基础。快速幂取模技术正是基于这一原理,将指数运算的时间复杂度从O(n)降至O(log n),从而高效处理指数爆炸问题。这一技术在密码学、大数取模和序列定位等场景中具有极高价值。本文以蓝桥杯一道经典真题为例,探讨如何运用快速幂取模和循环节定位,绕过暴力计算,直接求解分数小数点后任意位置的数字,为处理类

weixin_30437847的博客 420

C++分数取模【固定模板+讲解】

对于算法题目中要求对分数取模的题目,往往不能直接求解,这里是一套标准实用的C++模板和讲解。

weixin_73074505的博客 2699

数字逻辑设计大程——以撒的结合(Verilog语言)

前言 在大二学习数字逻辑设计课程(即计算机组成课程的前引课)时,期末大程题目我和同组的github成员lwaekfjlk 决定写一款基于Verilog语言的游戏。原型是我们两人都非常喜爱的一款游戏——The Binding of Isaac: Rebirth。在三天三夜的奋战后,基本完成了预期目标。由于亲自编写了其中种种,我们深知新手初期使用Verilog语言有多困难。而可悲的是,这又是之后计算机组成课程和体系结构课程所需的!因此,我们将top部分源码放在这里,供同袍们参考。若想引用还请注明出处。 代码部分

LuvLucifer的博客 1381

MobaXterm隧道配置详解:为PyCharm远程开发打通‘最后一公里’

本文详细解析了如何利用MobaXterm配置SSH隧道,实现PyCharm远程开发的高效连接。通过本地端口转发技术,开发者可以安全访问内网服务器,特别适用于需要通过跳板机的复杂网络环境。文章涵盖从基础配置到企业级运维的全套解决方案,包括性能优化、安全加固等实用技巧。

weixin_30566063的博客 502

分数取模(费马小定理)

费马小定理: 若p是质数,且p与a互质,有等式: a^(p-1) %p == 1 % p 那么我们在这上面变一下型: 俩边同除a a^(p-2)%p == a^(-1)%p 那么我们再在俩边同乘b (b / a)%p == b*a^(p-2)%p 所以分数b/a 模 p的结果就为b* a^(p-2)%p 这其实也是求出了其除法逆元 ...

give it a try 4833

图相似度模型(论文篇)

图相似度模型

weixin_43702653的博客 5746

分数取模运算

分数取模运算

qq_43727105的博客 2235

【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx

初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。

qq_43557907的博客 9486

Python爬虫实战:使用最新技术爬取GitHub Trending项目

本文将详细介绍如何使用Python最新技术栈构建一个高效的GitHub Trending爬虫。我们将使用异步请求库httpx、HTML解析库parsel、数据存储方案以及反反爬技术,完整实现一个能够稳定获取GitHub Trending数据的爬虫系统。文章包含5000余字详细教程,从环境搭建到代码实现,再到数据处理和存储,最后部署运行,提供全方位指导。GitHub Trending页面展示了GitHub上当前最受欢迎的项目,对于开发者了解技术趋势、发现优秀项目非常有价值。

2201_76125261的博客 735

分数取模怎么办

我们遇到负数的话要先加上 mod 再取模那么遇到分数的话怎么办分数则由分子乘以分母的逆元,然后再对积取模。longlong。

wniuniu_的博客 285

【光子AI / Photon.AI】manus 通用 Agent 的实现核心技术原理与应用

摘要 Manus是一款由国内团队开发的通用AI Agent,其核心技术原理基于多智能体协作架构、云端全能沙箱、规划-执行-反思循环等系统工程方法。与传统的对话式AI不同,Manus能够在独立的Linux虚拟机环境中自主规划并执行复杂任务,通过编写和运行代码来解决问题,具备强大的纠错能力和工具使用能力。 核心应用场景包括深度行业研究、自动化办公、生活助理、辅助编程和跨平台信息整合等。Manus的工程化落地优势体现在沙箱环境、多智能体调度和容错机制等方面,使其能够完成需要多步骤操作和多种工具调用的复杂任务,将A

AI天才研究院 666

分数取模和求解逆元

对于分数取模问题,提供费马小定理和逆元法两种解决方案,同时,对于求解逆元问题,提供拓展欧几里得算法、费马小定理和欧拉定理三种解决方案,并提供相应代码实现

字节幺零二四的博客 2653

【Bug已解决】Failed to fetch version ECONNREFUSED 解决方案

方案适用场景推荐指数难度方案一:NODE_EXTRA_CA_CERTS代理/企业网关证书⭐⭐⭐⭐⭐低方案二:浏览器导出证书不知证书在哪⭐⭐⭐⭐中方案三:使用系统证书macOS 用户⭐⭐⭐⭐中方案四:关闭代理直连快速验证⭐⭐⭐低方案五:更新 Node.js证书列表过时⭐⭐⭐低方案六:同步系统时间时间偏差导致⭐⭐⭐低根本原因。

博客 9972

Flow Match 原理 及应用

Flow Matching(流匹配)是生成模型的范式革命——用确定性ODE替代随机扩散过程,在自动驾驶轨迹预测中实现10倍采样加速和更高生成质量。更快的采样速度:通常只需 10-50 步就能生成高质量样本更稳定的训练:避免了传统扩散模型中复杂的噪声调度理论基础:基于连续正规化流(Continuous Normalizing Flows)核心思想:Flow Matching 通过学习一个 向量场(vector field) 来直接建模从噪声分布到目标分布的连续变换路径。

@bangbang的博客 98

快速幂及分数取模

ans == a^b%m typedef long long ll ll binaryPow(ll a, ll b, ll m){ ll ans = 1; while(b > 0){ if(b & 1){ ans = ans * a % m; } a = a * a % m; b >>= 1; } return ans; }

Rrrrya 320

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

分数取模的应用

我的整体思路就是定义两个数组p1和p2,其中p1中存放的是1-7个灯管亮的概率,p2中存放的是1-7个灯管不亮的概率。其中就用到了分数取模操作。其中用到了快速幂算法。接着在基于当前每个灯管亮的概率下,再去分别计算每个数字亮的概率,最后在将所有满足A + B = C的形式的 数的概率加起来就能得到最终的答案。我觉得难点主要是在分数取模这一步。这是牛客寒假营第一场的A题,这是我第一次接触分数取模的题,从这里面学到了分数取模以及乘法逆元的相关知识。

2301_81848095的博客 56

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

BISHI65 【模板】分数取模

【代码】BISHI65 【模板】分数取模。

博客 300

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

RSA分数取模(分数求模)运算

关于分数取模 以RSA算法为例 ed = 1 mod n d = 1/e mod n e, n, 已知,x, y, z, 是要自己凑出来的 (1) n = e * x + z (2) e = y * z + 1 可以简单的将(1)(2)公式中的e 和 y约掉 得到 d = x*y +1 具体原理如下: 做个例题练一下手: 例题1: e = 23 , n=2923 , p=37 , q=79, f(n) = (p-1) * (q-1) =2808, (1) d = 1/e mod 2808

hello world 6093

C++模意义下分数取模的原理与安全实现

在数论与算法编程中,'分数取模'并非对浮点数执行%运算,而是模意义下有理数a/b的等价转换——即求a乘以b关于模数p的乘法逆元。其数学本质是解线性同余方程b·x≡1 (mod p),依赖贝祖定理与模逆元存在性(gcd(b,p)=1)。技术价值在于支撑组合数取模、密码学运算及动态规划中的除法模化。典型应用场景包括ACM/ICPC算法竞赛、大质数模下的组合计数(如10^9+7)、以及合数模下的中国剩余定理分解。本文深入剖析费马小定理与扩展欧几里得两种逆元求法的适用边界、溢出防护与契约式封装,直击‘分数取模’在C

weixin_33842304的博客 286
上一篇: 二维数组用sort排序遇到得问题
下一篇: 关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
Y390d
博客等级 码龄9年 11粉丝 165原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值