首页 > 其他分享 >无题

无题

时间:2024-01-30 13:11:59浏览次数:22  
标签:ifac int dfrac varphi times 无题 mod

逆元

\(a \div b \mod p = a \times \dfrac{1}{b} \mod p\)

费马小定理: \(a^{p-1} \mod p = 1\),也就是 \(a^{p-1} \equiv 1 \pmod p\)。

得 $a^{p-2} \equiv \dfrac{1}{a} \pmod p $。

所以可以直接带逆元为 \(a^{p-2} \mod p\)。

\(\varphi(i)\) 指 \(1\) 到 \(i\) 中有多少数与 \(i\) 互质。

\(a^{\varphi(p)} \equiv 1 \pmod p\)

相似的 可以得 \(a^{\varphi(p)-1} \equiv \dfrac{1}{a} \pmod p\)。

所以可以直接带逆元为 \(a^{\varphi(p)-1} \mod p\)。

显然对于质数 \(p_1\),有 \(\varphi(p)=p-1\),还有 $\varphi(p^2) = p_1^2 - p_1 $ 和 \(\varphi(p^k) = p_1^k - p_1^{k-1}\)。

还得\(\varphi(p_1^{k_1} \times p_2^{k_2})=p_1^{k_1} \times p_2^{k_2} - p_1^{k_1-1} \times p_2^{k_2} - p_1^{k_1} \times p_2^{k_2-1}+ p_1^{k_1-1} \times p_2^{k_2-1})\)

设\(p_1^{k_1} \times p_2^{k_2} = n\) 显然有
\(\varphi(n)=n-\dfrac{n}{p_1}-\dfrac{n}{p_2}+\dfrac{n}{p_1 \times p_2}=n \times (1-\dfrac{1}{p_1})(1-\dfrac{1}{p_2})\)。

所以,我们得到结论 ,设 \(p\) 为 \(n\) 的分解质因数,得\(\varphi(n)=n \times (1-\dfrac{1}{p_1})(1-\dfrac{1}{p_2}) \cdots n \times (1-\dfrac{1}{p_k})\)

代码实现:

因为c++不支持分数计算,但是,显然 \(1-\dfrac{1}{x}=\dfrac{x-1}{x}\),所以,可以写成\(\varphi(n)=n \times (p_1-1) \div p_1 \times (p_2-1) \div p_2 \cdots \times (p_k-1) \div p_k)\),为了计算,一般写成先除后加的形式。

代码:

int get_phi(int n){
    int phi=n;
    for(int i=2;i*i<=n;i++){
        if(n%i==0){
            phi=phi/i*(i-1);
            while(n%i==0)n=n/i;
        }
    }
    if(n!=1)phi=phi/n*(n-1);
    return phi;
}
int fastpow(int x,int y,int p){
    if (y==0) return 1;
    int z=fastpow(x,y/2,p);
    z=1ll*z*z%p;
    if(y%2==1) z=1ll*z*x%p;
    return z;
}
int a,b;
int ans=fastpow(a,get_phi(b)-1,b);

exgcd

解方程 \(ax+by=\gcd(a,b)\)。

最后一层的方程是好解的 ,显然有 \(x=1,y=0\),现在考虑通过一层去推另一层,现在已知 \(x' b + y'(a \mod b)=\gcd(a,b)\),根据取模的定义得$ x'\times b + y'(a - b \times \lfloor \dfrac{a}{b} \rfloor)=\gcd(a,b)$,拆开可得 \(y'\times a+x'\times b - y' \times (b \times \lfloor \dfrac{a}{b} \rfloor)=\gcd(a,b)\),则可得 \(x=y'\),\(y=x'-y'\times (\lfloor \dfrac{a}{b} \rfloor)\)。

代码:

int exgcd(int a,int b,int &x,int &y){
    if(b==0){
        x=1;
        y=0;
        return a;
    }
    int xp,yp;
    int g=exgcd(b,a%b,xp,yp); 
    x=yp;
    y=xp-yp*(a/b);
    return g;
}

CRT/ExCRT (中国剩余定理/拓展中国剩余定理)

解方程组

\[\left\{ \begin{array}{lc} x \mod p_1=b_1\\ x \mod p_2 = b_2\\ \cdots \\ x \mod p_n = b_n \\ \end{array} \right. \]

考虑合并方程,这样,\(n-1\) 轮之后,可以合并成一个方程。

这里提供一个暴力方法,显然 \(P = \text{lcm}(p_1,p_2)\),但是,如何求 \(X\)?显然不能一个一个枚举,太慢。

我们把 \(X\) 设为 \(b_1\),然后持续 \(+ p_1\),直到 \(X \mod p_2 = 0\) 为止。

但是我们需要判断是否有解,因为无解会死循环,如果 \(X > P\),显然无解。

注意优化,如果\(a_1<a_2\),那么,交换 \(a_1\) 和 \(a_2\),单次操作\(O(\min(a1,a2))\),而且方程越多,跑的越快。这种暴力方法被称作大数翻倍法

给出合并代码:

int merge(int a1,int b1,int a2,int b2,int &a,int &b){
    if(a1<a2)swap(a1,a2),swap(b1,b2);
    a=a1/gcd(a1,a2)*a2;
    b=b1;
    while(b%a2!=b2&&b<=a)b+=a1;
    if(b%a1==b1&&b%a2==b2)return 1;
    else return 0;
}

质数筛法

比较简单,给两种及其简单的质数筛法(没讲欧拉筛 qwq):

void s1(int n){//O(nlogn)
    for(int i=2;i<=n;i++){
        for(int j=2*i;j<=n;j++)not_prim[j]=1;
    }
}
void s2(int n){//O(nloglogn)
    for(int i=2;i<=n;i++){
        if(not_prim[i]==0){    
            for(int j=2*i;j<=n;j++)not_prim[j]=1;
        }
    }
}

线性求逆元

方法一

令\(fac_i=i!\),令\(ifac_i=i!\)的逆元 ,先求出\(ifac_n\),再倒推\(ifac_i=ifac_{i-1} \times n\)。

则:\(inv_i=fac_{i-1} \times ifac_i\)。

代码,咕咕。

方法二

先咕咕。

标签:ifac,int,dfrac,varphi,times,无题,mod
From: https://www.cnblogs.com/ScapeGoatTree/p/17996883

相关文章

  • 无题
    今天班级里举行了新春联欢(没想到九年级的这次是整个初中唯一一次线下的新春联欢)下午两点开始,一点四十五就来到班里布置考场联欢现场,顺便和LSY排练合唱《呼伦贝尔大草原》也不知道为什么我们的节目排在倒数第二个,压轴是吧(好像是现场从十二点半就开始由家长和一些同学在布置了,......
  • 无题
    五星上将麦克阿瑟曾经说过,在我征战的这几十年中,不少人把“至少”写成“恰好”,不知道有千千万万的无辜百姓因为这些失误丢掉性命。鲁迅曾经说过,作(zuō)文要琢磨字词,例如不要把“至少”写成“恰好”。nKessi曾经说过,我nKessi就是麦克阿瑟,我说不要把“至少”写成“恰好”。我......
  • 无题
    2023-11-13本周工作单点登录实现数传测试任务流分享多线程学习(私)整理博客(私)翻译英文小说(私)2023-11-12本周工作数传代码配合测试任务流编写样例数传代码添加返回状态字段用户管理OAuth2.o技术调研分享,框架选型秘钥管理系修改线程池代码配合408梳理遥感代码实......
  • 无题
    2023年7月5日,就是写下这片文字的时间,李玟去世了。我在为工作忙碌和彷徨着,随想着世界少了不止她一个人,也多出了不止一个人,对于多出来的人这件事,没有渠道,无从查证。再写些什么就是有意而为之了,也并非自己所愿,所以暂到此为止。......
  • 无题
    学完计组,回头看汇编感觉清晰了很多,最开始汇编课本上介绍的各种寄存器真的都不知道啥意思,只知道通用寄存器能干啥,感觉国内的教材一开始就追求的是知识点的“完整罗列”,很多当前并不适合讲的东西也罗列上去,听的人云里雾里,不如用到什么讲什么。......
  • 612无题
    1.千淘万漉虽辛苦,吹尽黄沙始到金。-------------成功2.最大的遗憾莫过于,我们无法同时拥有青春和对青春的感悟3.对于一个鸡蛋来说,从外打破是食物,从内打破是生命。人生也是如此,从外打破是压力,从内打破是成长。4.经历的意义,在于引导你,而非定义你。记住深渊可以凝视,但不要驻足。5.......
  • 无题
    1.自在飞花轻似梦,无边丝雨细如愁2.用古诗词来表达我喜欢你  玲珑骰子安红豆,入骨相思君知否?  只愿君心似我心,定不负相思意。  曾经沧海难为水,除却巫山不是云。  一往情深深几许,深山夕照深秋雨。3.惊起归鸿不成字,辞柯落叶最知秋。  清风明月无人管,并作南......
  • 退役划水四 无题
    不会写\(Markdown\)了战雷削了经济系统之后完全打不下去了,之前修完车勉强能留下点,现在直接贷款修车。赛博西班牙内战可太乐了。单方面宣布少战成为战雷平替。u1s1,玛丽王后说出这种话可太地狱了。拿破仑可以和卡尔大公惺惺相惜,而奥地利的荡妇大抵是等不到了罢。......
  • 无题
    吾于十九日,著此文。此文,乃吾之宣言也。初入初中,倍感不适。吾班,信息者,数学者,均三足鼎立,非我容生之地。吾乃思:此非得不偿失耶?又复思:自增其才,足矣。吾宣言:学信息、数学时,不可不认真。一题三思,每日必做数题也。无时间者,必思也。若视其三人为淤泥,也须出淤泥而不染也。吾不信,行此举,吾......
  • 依然是无题
    曾经的土地广袤的土地上坐落着两个农场,朝阳悄悄洒在农场的土地上,也洒在正在忙活的两位农场主身上。在一片远离喧嚣的城市的地方,看似祥和,实则不怎么尽人意。“杨叔,你那的收成怎么样啊!”阿军擦了擦袖口潮湿的泥土,问道。“还行啊,小伙子你那边地收成不行吧?”杨叔掐灭了快燃尽的香烟......