• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
nannandbk
博客园    首页    新随笔    联系   管理    订阅  订阅
关于同余的总结

关于同余的总结

一、一些重要的定义和定理

\(def1.\)如果\(m\)是\(x-a\)的一个因子,就说\(x\)和\(a\)关于\(\bmod m\)同余,并记为\(x≡a(\bmod m)\),也等价于\(m|(x-a)\)。

\(def2.\)如果\(x≡a(\bmod m)\),那么\(a\)就叫做\(x\)模\(m\)的一个剩余

\(def3.\)如果\(0\le a<m\),那么就称\(a\)为\(x\)模\(m\)的一个最小剩余

\(def4.\)由与某个给定的剩余同余的所有数组成的一个类叫做同余类

\(def5.\)同余类的每个成员都叫做这个类的一个代表

\(def6.\)总共有 \(m\) 个同余类, 它们分别以 \(0,1,..,m-1\) 作为代表, 任何 \(m\) 个分别属于这 \(m\)个剩余类的数组成一个集合, 称为模 \(m\) 的一个完全剩余系, 简称完系。(剩余系的概念在线性同余方程种有应用)

\(Th1.\)如果\(a≡b(\bmod m),a≡b(\bmod n)\)那么\(a≡b(\bmod [m,n])\)

\(Th2.\)如果\(ka≡kb(\bmod m)\),那么\(a≡b(\bmod \dfrac{m}{(k,m)})\)

\(Th3.\)(重要!)如果\(a_1,a_2...a_m\)是模\(m\)的一个完全剩余系,且有\((k,m) = 1\),那么\(ka_1,ka_2...ka_m\)也是模\(m\)的一个完全剩余系。更一般地,\(ka_i+l\)也是完全剩余系。

\(Pfoof.\)

设\(a_1,a_2,...,a_m\)为模\(m\)的完全剩余系。根据完全剩余系定义,这组整数模\(m\)两两不同余。要证明:\(aa_1+b,aa_2+b,...,aa_n+b\)也是模\(m\)的一组完全剩余系,只需要证明这\(m\)个数模\(m\)两两不同余即可。

反证法:假设存在\(a_i\)和\(a_j,i\ne j\),使得\(aa_i+b≡aa_j+b(\bmod m),\)则有\(m|a(a_i-a_j)\)。由于\(\gcd(a,m)=1\),所以\(m|(a_i-a_j)\),即\(a_i≡a_j(\bmod m)\).这与\(a_1,a_2,...,a_m\)模\(m\)两两不同余矛盾了。

因此证得:\(aa_1+b,aa_2+b,...,aa_n+b\)模\(m\)两两不同余。

补充:\(Th3\)的应用

I. Rise of Shadows

思路:追击问题,我们以时针作为参照物(静止不动),相对运动速度针对分针分析。

\(v_h绝对 = \dfrac{2\pi}{HM},v_m绝对= \dfrac{2\pi}{M}\)

\(v_m相对 = v_m绝对-v_h绝对 = \dfrac{2\pi}{M}-\dfrac{2\pi}{HM} = (H-1)\dfrac{2\pi}{M} = (H-1)v_h绝对\)

相当于分针相对于时针以每分钟\((H-1)\)的速度运动。

\(t\times (H-1)v_h绝对 \bmod HM \le \alpha = A\times v_h绝对\)

其中\(t\in[0,HM)\)

那么柿子转化为:\(t\times (H-1)v_h绝对 \bmod HM \le |\alpha| = |A\times v_h绝对|\)

即:\(t\times (H-1) \bmod HM \le |A|\)

根据剩余定理\(3\):如果\(a_1,a_2...a_m\)是模\(m\)的一个完全剩余系,且有\((k,m) = 1\),那么\(ka_1,ka_2...ka_m\)也是模\(m\)的一个完全剩余系。更一般地,\(ka_i+l\)也是完全剩余系。

\(g = \gcd(H-1,HM)\)

为满足互质条件,同除\(g\),那么\(t\times (H-1)/g \bmod HM/g \le |A/g|\)

那么:$ -A/g \le t\times (H-1)/g \bmod HM/g \le A/g$

同时\(t\in[0,HM/g)\)

接下来只需求解出\(t\)的整数解的个数。

因为\(t\)是\(\mod HM/g\)的完全剩余系,又\(((H-1)/g,HM/g)=1\),那么\(t(H-1)/g\)也是构成模\(HM/g\)意义下的完全剩余系。

由于$\bmod $ 之后余数\(\le A/g\),因此一共又\(1,2,3,...,A/g\),一共\(A/g\)个,并且无重复。即\(t\)于余数值一一对应。在\(t\in[0,HM/g)\)中一共有\(2*(A/g)+1\)个。

再把\(t\)还原到\(t\in[0,HM]\),答案就是\(g*(2*(A/g)+1)\)个。

注意特判:\(A=\dfrac{HM}{2}\),此时\(\alpha=\pi,t\in[0,HM)\)所有都满足,答案是\(HM\)。

// AC one more times
// nndbk
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
const int N = 2e5 + 10;
ll H,M,A;
int main()
{
    ios::sync_with_stdio(false);   cin.tie(nullptr), cout.tie(nullptr);
    cin>>H>>M>>A;
    if(2*A==H*M)cout<<H*M<<"\n";
    else
    {
        //(H-1)t mod HM = |A|
        ll g = __gcd(H-1,H*M);
        cout<<(2*(A/g)+1)*g<<"\n";
    }
    return 0;
}

二、一元线性同余方程

研究线性同余方程有什么用处?

\(ax≡b(\bmod m)\)表示\(ax-b\)是\(m\)的倍数,设为\(-y\)倍,则有\(ax+my = b\).

所以,求解一元线性同余方程等价于求二元线性丢番图方程。

posted on 2023-09-12 11:34  nannandbk  阅读(55)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3