费马小定理:
如果p是一个质数,而整数a不是p的倍数,
则有a(p-1)≡1(mod p)。
即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1
变式延伸:
在对质数 p 求余的条件下
n * ap-1 ≡ n * 1 = n
ap-2 ≡ a-1 * 1 = a-1  
ab ≡ a b-p+1 
(≡:等价)
费马小定理参考博客


例题

First:牛牛和牛可乐的赌约

题目原理

ans = mod + 1 - ( (1/n) % mod)m

变式可得

(1/n)%mod ==> nmod-1/ n ==> nmod-2

推荐快速幂博客
(由于 mod 与 m 都很大,再利用快速幂即可得到答案)

#include<stdio.h>
#define ll long long
const ll mod = 1e9+7;ll quick(ll base, ll power)  //快速幂
{long long result=1;while(power){if(power&1)//只有奇数才乘以底数result=result*base%mod;base=base*base%mod;power=power>>1;}if(base==0){result=0;}return result%mod;
}int main(){int t;scanf("%d", &t);while(t--){ll n, m, ans;scanf("%lld%lld", &n, &m);ans = quick(n, mod-2)%mod;ans = quick(ans, m);ans = mod+1-ans;printf("%lld", ans);if(t!=0) printf("\n");}return 0;
}

Second:抽卡


解题思路

①、抽到牌概率 = 总概率 - 抽不到牌概率
②、费马小定理变形:(1/n)%mod = nmod-1


实现代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[100010]={0}, b[100010]={0};
const int mod = 1e9+7;ll quick(ll base, ll power){ll ans=1;while(power){if(power&1)ans = ans*base%mod;power >>= 1;base = base*base%mod;}if(base==0) return 0;return ans;
}int main(){int n;scanf("%d", &n);for(int i=0; i<n; i++) scanf("%d", &a[i]);for(int i=0; i<n; i++) scanf("%d", &b[i]);ll ans=1;for(int i=0; i<n; i++){ans = (ans*(a[i]-b[i])%mod)*quick(a[i], mod-2)%mod;}printf("%d", (mod-ans+1)%mod);return 0;
}

费马小定理【模板例题】相关推荐

  1. Lucas+阶乘打表+费马小定理模板2.0

    目的:输入m, n, p,求出C(m,n)%p的精确值 基础: 1.费马小定理:已知整数a和质数p,其中Gcd(a, p)==1,那么a^(p-1)%p==1恒成立 2.要求出(a/b)%p的值(p一 ...

  2. luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)

    整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...

  3. 数论杂谈(欧拉定理与费马小定理结论与应用)

    文章目录 欧拉定理: 欧拉定理性质: 扩展欧拉定理: 费马小定理: 指数循环节 费马大定理 逆元: 例题 原根 定义: 原根存在条件 例题 快速幂 代码 矩阵快速幂 原理: 代码: 欧拉定理: aφ( ...

  4. 算法 {欧拉函数,欧拉定理,费马小定理}

    欧拉函数 定义 ϕ ( x ) , x ∈ N + \phi(x), \ \ x \in N^+ ϕ(x),  x∈N+ means the number of y ∈ N + y \in N^+ y ...

  5. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...

  6. 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明

    一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...

  7. 初等数论四大定理(威尔逊定理,欧拉定理,费马小定理,中国剩余定理)

    初等数论四大定理 1. 威尔逊定理 (1) 结论 当且仅当ppp为素数时,(p−1)!≡−1(modp)(p-1)!\equiv -1(\mod p)(p−1)!≡−1(modp). (2) 证明 充 ...

  8. 快速幂-Jxc军训 (费马小定理+求概率)(2021-08-17)

    Jxc军训 题目 在文某路学车中学高一新生军训中,Jxc正站在太阳下站着军姿,对于这样的酷热的阳光,Jxc 表示非常不爽. Jxc将天空看做一个nn的矩阵,此时天上有m朵云,这些云会随机分布在m个不同 ...

  9. 逆元的几种求法(扩展欧几里得,费马小定理或欧拉定理,特例,打表等)

    乘法逆元 对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n) 一个数有逆元的充分必要条件是gcd(a,n)=1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果 ...

最新文章

  1. Seata RPC 模块的重构之路
  2. java comparator 降序排序_【转】java comparator 升序、降序、倒序从源码角度理解
  3. 用Fortify SCA分析代码漏洞
  4. 第一章 简单工厂模式
  5. 每天十分钟系列:JS数据操作之神奇的map()
  6. ruby hash方法_Ruby中带有示例的Hash.keys方法
  7. 跨浏览器实现等高栏 Equal Height Columns with Cross-Browser CSS
  8. Linux内核性能架构:perf_event
  9. LVS(DR)+keepalived实现高可用负载均衡
  10. Ubuntu16.04和树莓派3B编译opencv3
  11. atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx
  12. <2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(七)—— 终篇总结
  13. c语言温度转换作业帮,C++摄氏度和华氏度互相转化
  14. 计算机编程学英语词汇,计算机编程常用英语词汇
  15. MaximalRectangle
  16. 什么原因让你对程序员失去了往日的热情?
  17. 谷歌EfficientNet高效卷积网络的学习和使用
  18. 微信个人收款码于订单应用之解决方案
  19. Collaborative Filtering for Implicit Feedback Datasets结论公式推导
  20. SQL SERVER 如何调试存储过程

热门文章

  1. 解决d3dx9_35.dll丢失找不到
  2. Camtasia Studio2023非常好用的电脑录屏软件
  3. python parser.add_argument函数及sys.argv[]
  4. 10.23训练赛补题
  5. AE插件哪款好?这5款堪称动效设计必备
  6. 嵌入式入门学习笔记1
  7. 聚焦道路交通安全,《自动驾驶汽车交通安全白皮书》正式发布
  8. 腾讯数据分析师认证!
  9. 【数据库系统】空值的处理
  10. RSA--------------