0. 前置知识

0.1. 费马小定理

\[a ^{p-1}\equiv1\pmod p(p\in\mathbb P,a\perp p)
\]

由此可以推出模意义下乘法逆元:

\[a ^{-1}\equiv a ^{p-2}\pmod p(p\in\mathbb P,a\perp p)
\]

0.2. 威尔逊定理

\[(p - 1)!\equiv -1\pmod p(p\in\mathbb P)
\]

0.3. 线性筛

1. 扩展欧几里得算法

1.1. 简介

扩展欧几里得算法用于求 \(ax+by=\gcd(a,b)\) 的一组特解(整数解)。

推导如下:

设 \(\begin{cases}ax_1+by_1=\gcd(a,b)\\bx_2+(a\mod b)y_2=\gcd(b,a\mod b)\end{cases}\)

由欧几里得算法可知 \(\gcd(a,b)=\gcd(b,a\mod b)\)。

联立有:

\[ax_1+by_1=bx_2+(a\mod b)y_2
\]
\[ax_1+by_1=bx_2+(a-\left\lfloor\dfrac{a}{b}\right\rfloor\times b)y_2
\]
\[ax_1+by_1=ay_2+b(x_2-\left\lfloor\dfrac{a}{b}\right\rfloor\times y_2)
\]

可得:

\[\begin{cases}x_1=y_2\\y_1=x_2-\left\lfloor\dfrac{a}{b}\right\rfloor\times y_2\end{cases}
\]

最后在求 \(\gcd\) 的过程中求解 \(x,y\) 即可。

1.2. 常见技巧

1.2.1. 二元一次不定方程通解

对于 \(ax+by=c\) 这种一元二次不定方程,由裴蜀定理可知,当 \(\gcd(a,b)\nmid c\) 时,此方程无整数解

当有整数解时,我们将其转化为 \(ax+by=\gcd(a,b)\) 的形式,然后用扩展欧几里得算法求解。

我们设扩展欧几里得算法求出的解为 \(X,Y\),\(ax+by=c\) 方程所求的一组特解为 \(x',y'\),有:

\[\begin{cases}x'=\dfrac{Xc}{\gcd(a,b)}\\y'=\dfrac{Yc}{\gcd(a,b)}\end{cases}
\]

因为 \(ax'\) 与 \(by'\) 的和恒为 \(c\),有:

\[a(x'+db)+b(y'-da)=c
\]

其中,我们要保证 \(x'+db,y'-da\) 均为整数,取得最小变化量:

\[\begin{cases}d_x=\dfrac{b}{\gcd(a,b)}\\d_y=\dfrac{a}{\gcd(a,b)}\end{cases}
\]

最后得出通解形式:

\[\begin{cases}x=x'+sd_x\\y=y'+sd_y\end{cases}
\]

接下来是关于正整数解的内容。

限制 \(x,y>0\),解得:

\[\left\lfloor\dfrac{-x'+1}{d_x}\right\rfloor\le s\le\left\lceil\dfrac{y'-1}{d_y}\right\rceil
\]

至此,我们可以判断正整数解个数。当 \(s\) 取极值时,我们也可求出 \(x,y\) 的极值。

1.3. 例题

咕咕咕

2. 欧拉函数(施工中)

2.1. 基本定义与性质

约定

以下讨论均基于正整数域。

欧拉函数 \(\varphi(n)\) 表示 \([1,n]\) 范围内与 \(n\) 互质的数的个数。

定义式: \(\varphi(n)=\sum\limits_{i=1}^{n}[\gcd(n,i)=1]\) 。

计算式:设 \(n\) 被唯一分解为 \(\prod\limits_{i=1}^mp_i^{c_i}\)(\(p_i\) 为质数),\(\varphi(n)=n\times\prod\limits_{p_i}^m\left(1-\dfrac1{p_i}\right)\)。

证明:

先假设 \(m=2\),可以写出式子并因式分解: \(\varphi(n)=n-\frac{n}{p_1}-\frac{n}{p_2}+\frac{n}{p_1p_2}=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})\)。

进一步地,可将式子推广为\(\varphi(n)=n\times\prod\limits_{p_i}^m\left(1-\dfrac1{p_i}\right)\)。

int phi(int x) {
int res = x;
for (int i = 2; i * i <= x; i++)
if (x % i == 0) {
while (x % i == 0)
x /= i;
res = res / i * (i - 1);
}
return res / x * max(1, x - 1);
}

性质 \(1\)(积性):若 \(a\perp b\),则 \(\varphi(ab)=\varphi(a)\times\varphi(b)\)。

\(a\perp b\) 即 \(\gcd(a,b)=1\),表示 \(a,b\) 互质。

积性函数:当 \(a\perp b\) 时,有 \(f(ab)=f(a)\times f(b)\),则称函数 \(f(x)\) 为积性函数。

完全积性函数:任意条件下有 \(f(ab)=f(a)\times f(b)\),则称函数 \(f(x)\) 为完全积性函数。

证明:

设 \(a=\prod\limits_{i=1}^{m_a}p_i^{c_i},b=\prod\limits_{i=1}^{m_b}q_i^{c_i}\),因为 \(a\perp b\),有 \(p_i\not=q_j\),故 \(ab=\prod\limits_{i=1}^{m_a}p_i^{c_i}\times\prod\limits_{i=1}^{m_b}q_i^{c_i}\),由计算式得出:

\[\varphi(ab)=ab\times \prod\limits_{i=1}^{m_a}\left(1-\dfrac1{p_i}\right)\times\prod\limits_{i=1}^{m_b}\left(1-\dfrac1{q_i}\right)=\varphi(a)\times\varphi(b)
\]

性质 \(2\):对于质数 \(p\),有 \(\varphi(p)=p-1,\varphi(p^k)=(p-1)\times p^{k-1}\)。

证明:

对于 \(\varphi(p)=p-1\),由质数定义易知。

对于 \(\varphi(p^k)=(p-1)\times p^{k-1}\),考虑所有不是 \(p\) 的倍数的数都与 \(p^k\) 互质,有 \(\varphi(p^k)=p^k-p^{k-1}=(p-1)\times p^{k-1}\)。

性质 \(3\):若 \(a\mid b\),则 \(\varphi(ab)=a\times\varphi(b)\)。

证明:

将两者拆分,代入 \(\varphi(ab),\varphi(b)\) 计算式,对比结果可得此性质。

换一种理解方式,\(ab\) 相对 \(b\) 并没有增加质因子,所以与 \(b\) 互质的数仍然与 \(b\) 互质,整个过程看做将值域扩展到 \([1,ab]\),其中与 \(b\) 互质个数显著为 \(a\varphi(b)\),因为与 \(b\) 互质的数加上 \(kb(k\in\Z)\) 后仍然与 \(b\) 互质。

性质 \(4\):若 \(p\) 为质数且 \(p\mid n\),则有:

\[\varphi(n)=\begin{cases}p\times\varphi(\frac n p)\quad&(p^2\mid n)\\(p - 1)\times\varphi(\frac n p)&(p^2\nmid n)\end{cases}
\]

性质 \(5\):\(\forall n>1\),\([1,n]\) 中与 \(n\) 互质的数字和为 \(\frac{n\times\varphi(n)}{2}\)。

证明:

有 \(\gcd(n,x)=gcd(n,n-x)\),所以 \([1,n]\) 中与 \(n\) 互质的数成对出现,并且平均值为 \(n/2\),可得出此结论。

性质 \(6\):若 \(a\mid b\),则 \(\varphi(a)\mid\varphi(b)\)。

证明:

由计算式得到,是显著的。

2.2. 欧拉定理

「Note」数论方向 - 数论基础的更多相关文章

  1. 「HNOI2008」「LuoguP3197」越狱(数论

    题目描述 原题来自:HNOI 2008 监狱有连续编号为 111 到 nnn 的 nnn 个房间,每个房间关押一个犯人.有 mmm 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人信仰的宗教相同, ...

  2. 「NOTE」常系数齐次线性递推

    要不是考到了,我还没发现这玩意我不是很会-- # 前置 多项式取模: 矩阵快速幂. # 常系数齐次线性递推 描述的是这么一个问题,给定数列 \(c_1,c_2,\dots,c_k\) 以及数列 \(f ...

  3. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  4. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  5. 【LOJ】#3096. 「SNOI2019」数论

    LOJ#3096. 「SNOI2019」数论 如果\(P > Q\)我们把\(P\)和\(Q\)换一下,现在默认\(P < Q\) 这个时候每个合法的\(a_i\)都可以直接落到\(Q\) ...

  6. 「kuangbin带你飞」专题十二 基础DP

    layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...

  7. LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配

    #2003. 「SDOI2017」新生舞会 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  8. 「MoreThanJava」Day 4:面向对象基础

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  9. 洛谷 P4714 「数学」约数个数和 解题报告

    P4714 「数学」约数个数和 题意(假):每个数向自己的约数连边,给出\(n,k(\le 10^{18})\),询问\(n\)的约数形成的图中以\(n\)为起点长为\(k\)的链有多少条(注意每个点 ...

  10. LOJ #2135. 「ZJOI2015」幻想乡战略游戏(点分树)

    题意 给你一颗 \(n\) 个点的树,每个点的度数不超过 \(20\) ,有 \(q\) 次修改点权的操作. 需要动态维护带权重心,也就是找到一个点 \(v\) 使得 \(\displaystyle ...

随机推荐

  1. linux测试url的访问速度

    在Linux中,你可以使用curl命令来测试URL的访问速度.curl是一个强大的命令行工具,可以用于文件传输和测试网络连接. 以下是使用curl测试URL访问速度的步骤: 打开终端或命令行界面. 输 ...

  2. php 过滤掉emoji表情

    <?php function filter_emoji($str) { $str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换 '/./u ...

  3. 如何避免VMware平台ESXi主机CPU使用率的“坑”?

    https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650636818&idx=1&sn=c43f3a3146092f ...

  4. 渗透技巧——CDN绕过

    渗透技巧--CDN绕过 一.前言: 在渗透站点的时候常常会遇见站点有CDN加速情况,就无法准确的找到目标IP.首先是检测如何发现有无CDN,然后才能说绕过的问题. 二.检测有无CDN: 首先有以下几种 ...

  5. 【JDBC第7章】DAO及相关实现类

    第7章:DAO及相关实现类 DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create.Retrival.Update.Delete),而不包含任何业务相 ...

  6. 【数据结构与算法】第K大的元素:三路快速排序算法思路

    第K大的元素:三路快速排序算法思路 Java https://leetcode-cn.com/problems/kth-largest-element-in-an-array/solution/di- ...

  7. 《机器人SLAM导航核心技术与实战》先导课:SLAM的应用价值与技术难点

    <机器人SLAM导航核心技术与实战>先导课:SLAM的应用价值与技术难点 视频讲解 [先导课]3.SLAM的应用价值与技术难点-视频讲解 [先导课]3.1.SLAM的应用价值与技术难点-S ...

  8. WCHNET_SocketSend返回0x11原因及解决方法

    问题描述: TCPCLIENT模式使用WCHNET_SocketSend发送有概率会返回0x11 按wchnet.h定义为内存溢出错误. 异常分析: 通过WCHNET_QueryUnack查看,发现异 ...

  9. 🎀windows-剪切板

    简介 Windows 剪贴板是一个临时存储区域,它允许用户在不同应用程序之间复制和粘贴文本.图像和其他类型的数据.从 Windows 10 开始,微软引入了一个改进的剪贴板功能,称为剪贴板历史记录,它 ...

  10. kette介绍-Step之Merge Join

    Merge Join介绍 需要配合Sort rows使用,对关联字段进行排序 关联两个step数据,可以是两个不同的数据库表数据,也可以是一张表,一个文件,输出字段为两张表所有字段 注意将小数据集作为 ...