算法提升之数学(快速幂+逆元求法)

今天给大家分享快速幂的相关知识

1.快速幂的基本内容

2.快速幂的代码

3.费马小定理

4.逆元

问题描述

给出 n,p,求 n−1modp。其中,n−1modp 指存在某个整数0≤a<p,使得 namodp=1,此时称 a为 n 的逆元,即 a=n−1。数据保证 p 是质数且 nmodp≠0。

输入格式

输入包含一行,为两个整数 n,p。

输出格式

输出包括一行,为一个整数,表示n−1modp。

输入案例:

复制代码
3 5

输出案例:

复制代码
2

代码部分:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll qmi(ll a,ll b,ll p){
    ll res=1;
    while(b){
      if(b&1)res=res*a%p;
      a=a*a%p;b>>=1;
    }
    return res;
}
ll inv(ll a,ll p){
  return qmi(a,p-2,p);
}
int main()
{
  ll n,p;cin>>n>>p;
  cout<<inv(n,p)<<'\n';
  return 0;
}

这是求解逆元的模版题,题目比较基础,大家可以记忆理解。

问题描述

费马是一位著名的数学家,为了解决某些复杂的数学问题,他经常需要计算模逆元。直接计算模逆元非常耗时,但费马发现了一个简单的方法来快速计算模逆元,这与他之前的一个数学发现有关。

模逆元:如果 p 是素数,并且 a是一个不被p 整除的整数,那么 a在模 p 下的逆元是 ap−2modp。这是因为根据费马小定理,我们有 ap−1≡1modp。所以,ap−2≡1modp,这意味着 ap−2是 a 在模 p 下的逆元。

现在给定两个正整数 a 和 p。计算 a 在模 p 下的逆元,并确保 p 是一个素数。

输入格式

输入包含两个正整数,分别为 a 和 p。

输出格式

输出 a 在模 p下的逆元。如果逆元不存在(即 a 能被 p 整除),输出 Inverse doesn't exist

输入案例:

cpp 复制代码
3 7

输出案例:

cpp 复制代码
5

代码部分:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll qmi(ll a,ll b,ll p){
  ll res=1;
  while(b){
    if(b&1)res=res*a%p;
    a=a*a%p;b>>=1;
  }
  return res;
}
bool isprime(ll a){
  if(a<2)return false;
  for(ll i=2;i<a/i;i++){
    if(a%i==0)return false;
  }
  return true;
}
int main()
{
  ll a,p;cin>>a>>p;
  if(a%p==0){
    cout<<"Inverse doesn't exist"<<'\n';
    return 0;
  }
  if(isprime(p)){
  cout<<qmi(a,p-2,p)<<'\n';
  }
  return 0;
}

希望今天题目对大家能有所帮助,今天的分享就到这里,希望大家多多关注。

相关推荐
郝学胜-神的一滴22 分钟前
[简化版 GAMES 101] 计算机图形学 04:二维变换上
c++·算法·unity·godot·图形渲染·unreal engine·cesium
ZC跨境爬虫22 分钟前
海南大学交友平台开发实战day7(实现核心匹配算法+解决JSON请求报错问题)
前端·python·算法·html·json
计算机安禾27 分钟前
【数据结构与算法】第41篇:图论(五):拓扑排序与关键路径
c语言·数据结构·c++·算法·图论·visual studio
Q741_14730 分钟前
每日一题 力扣 1320. 二指输入的的最小距离 动态规划 C++ 题解
c++·算法·leetcode·动态规划
wfbcg38 分钟前
每日算法练习:LeetCode 76. 最小覆盖子串 ✅
算法·leetcode·职场和发展
Wect42 分钟前
LeetCode 149. 直线上最多的点数:题解深度剖析
前端·算法·typescript
qianpeng8971 小时前
运动声源的到达结构仿真
算法
费曼学习法1 小时前
线段树:区间查询的"终极武器",一文看透高效范围统计
算法
wayz111 小时前
Day 2:线性回归原理与正则化
算法·机器学习·数据分析·回归·线性回归
QQ676580081 小时前
基于yolo26算法的水下目标检测图像数据集 海洋生物识别 海胆识别 海龟识别数据集 海洋生物监测与保护工作 潜水作业安全辅助系 水下环境感知第10408期
算法·目标检测·水下目标检测·海洋生物识别·海胆 海龟识别·海洋生物监测与保护工作·潜水作业安全辅助 水下环境感知