(ex)CRT / (ex)Lucas

news/2024/11/15 19:57:09/文章来源:https://www.cnblogs.com/notears/p/18548459

以下所有分数默认取整。

CRT

\(\begin{cases}x\equiv a_1\pmod {p_1}\\x\equiv a_2\pmod {p_2}\\\cdots\\x\equiv a_n\pmod {p_n}\end{cases}\),且所有 \(p\) 互质。

\(p'_i=\dfrac {\prod p}{p_i}\),且 \(p'_i\) \(\bmod p_i\) 意义下逆元为 \(q_i\),则可构造解为 \(x=\sum\limits_{i=1}^na_ip'_iq_i\)

注意这里没有保证 \(p\) 是质数,所以要用 exgcd 求逆元。

exCRT

\(p\) 不互质了,怎么办?

每次合并两个方程 \(x\equiv r_1\pmod p_1\)\(x\equiv r_2\pmod p_2\),假设现有方程是前者,初始 \(r_1=0, p_1=1\)

我们现在需要满足 \(p_1k_1+r_1\equiv r_2\pmod p_2\),即 \(p_1k_1+r_1= r_2+p_2k_2\),移项即为 \(p_1k_1-p_2k_2=r_2-r_1\),这个 exgcd 解出来,判一下无解,否则就可以直接还原,如果解出来 \(x\),方程的通解就是 \(x+k\operatorname{lcm}(p_1,p_2)\)

Lucas

对于 \(p\in \mathbb P\),有

\[\dbinom{n}{m}\equiv\dbinom{\frac n p}{\frac m p}\dbinom{n\bmod p}{m\bmod p}\pmod p \]

exLucas

\(p\) 不是质数,怎么办?

可以将 \(p\) 唯一分解,然后对于每个分离出来的质因子的幂解决,最后 CRT 合并,以下令这个因子幂为 \(p^k\)(上面的 \(p\) undef 了)。

现在变成了 \(\dbinom{n}{m}\equiv r\pmod{p^k}\),目标就是对每一个 \(p^k\) 求出 \(r\),把组合数拆开来:

\[\dfrac{n!}{m!(n-m)!}\equiv r\pmod{p^k} \]

左边式子不是很好求的,但是只要把 \(p\) 都提出来就好了,令数 \(n!\) 里面 \(p\) 因子的个数为 \(g(n)\),去除 \(p\) 因子的数为 \(f(n)\),则答案变为:

\[\dfrac{f(n)}{f(m)f(n-m)}p^{g(n)-g(m)-g(n-m)}\equiv r\pmod{p^k} \]

现在下面那个肯定是存在逆元了,只差快速算出 \(f,g\),先以 \(f\) 为例,下面式子都在 \(\bmod p^k\) 意义下进行。

\[\begin{aligned} f(n)&=n!\\ &=(p\cdot p^2\cdots p^t)(1\cdot 2\cdots (p-1)(p+1)\cdots n)\\ &=p^{\frac n p}(\dfrac n p)!(1\cdot 2\cdots (p-1)(p+1)\cdots n)\\ &=p^{\frac n p}f\left(\dfrac n p\right)\left(\prod\limits_{i\bmod p\not=0}^{p^k}i\right)^{\frac n{p^k}}\prod\limits_{i=p^k\frac{n}{p^k},i\bmod p\not=0}^{n}i\\ \end{aligned}\]

上面 \(f\) 里面阶乘要带换成 \(f\left(\dfrac n p\right)\) 的原因是这个里面可能还有 \(p\) 的因子,不断去除。这个就可以递归算了,\(g\) 同理,求的就是 \(f\) 最前面 \(p\) 的幂次。

\[g(n)=\dfrac{n}{p}+g\left(\dfrac n p\right) \]

两个边界都是 \(f(0)=g(0)=0\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834208.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件共享服务之实时备份(inotify+rsync)

任务需求 1.对NFS服务器上的静态资源实时备份(inotify+rsync) 主机列表 # 外网地址 内网地址 主机名 192.168.122.207 172.16.1.207 web-test-209 192.168.122.231 172.16.1.231 nfs-test-231 192.168.122.241 172.16.1.241 rsync-test-241架…

专题四:信息安全

信息系统安全属性 机密性:确保信息不暴露给未授权的实体或进程。 完整性:只有得到允许的人才能修改数据,并且能够判断出数据是否已被篡改。 可用性:得到授权的实体在需要时可访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作。 可控性:可以控制授权范围内的信息流…

生产环境中AI调用的优化:AI网关高价值应用实践

随着越来越多的组织将生成式AI引入生产环境,他们面临的挑战已经超出了初步实施的范畴。如果管理不当,扩展性限制、安全漏洞和性能瓶颈可能会阻碍AI应用的推广。实际问题如用户数据的安全性、固定容量限制、成本管理和延迟优化等,需要创新的解决方案。 本文我们深入探讨了一些…

MobileViT-v1-所有patch内相对位置相同的token之间计算自注意力

paper def my_self(x: torch.Tensor):通过这段代码 可以把每张图片图片中相对位置相同的若干个tokens放到最后两个维度# [B, C, H, W] -> [B, C, n_h, p_h, n_w, p_w] # n_h是高度方向上可以分多少个patch p_h patch的高度 n_w 宽度方向上可以分多少个patch p_w patch的宽…

27. 使用MySQL之全球化和本地化

1. 字符集和校对顺序 数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。 在讨论多种语言和字符集时,将会遇到以下重要术语:字符集为字母和符号的集合;…

TCP/IP上三层协议

TCP/IP上三层的角色 同一台设备上的进程间通信有多种方式,如管道、消息队列、共享内存、信号等。而不同设备间的进程通信需要网络通信,由于设备具有多样性,因此协商出了一套通用的网络协议。这个网络协议是分层的,每一层都有各自的作用和职责,接下来将依据 “TCP/IP 网络模…

无线部分

AC堆叠(VAC) 配置两台AC设备,使用虚拟化方案组合成1台虚拟AC。 AC1和AC2之间的G 0/3-4端口作为虚拟交换链路。配置AC1为主,AC2为备。主设备 description为AC1,备用设备description为AC2。 AC1 virtual-ac domain 100device 1 device 1 priority 200 device 1 description …

DHCP欺骗

DHCP 欺骗原理DHCP 协议(Dynamic Host Configuration Protocol) 动态主机配置协议:主要给客户机提供 TCP/IP 参数,包括:IP 地址、子网掩码、网关、DNS、租期工作原理应用层协议,基于UDP 主机向服务器 67 号端口发送 DHCP 请求 服务器响应给客户机的 68号端口配置设置DHCP 服…

Redis运行的时候碰到# Creating Server TCP listening socket *:6379: bind: No error

Redis运行的时候碰到# Creating Server TCP listening socket *:6379: bind: No error 解决方案: 1、启动redis客户端:redis-cli.exe。 2、执行关闭命令:输入shutdown3、执行退出命令:exit4、重新启动Redis输入:redis-server.exe redis.windows.conf

https实验

https 实验原理httphttps https = http + SSL/TLS •SSL: Secure Socket Layer 安全套接层 •TLS: Transport Layer Security 传输层安全协议加密方式:PKI(公钥基础设施)使用公钥技术和数字签名来保证信息安全由公钥密码算法、数字证书(Certificate)、CA(Certificate Aut…

手把手教你搭建OpenScenario交通场景(上)

经纬恒润动力学仿真软件ModelBase基于OpenScenario1.0标准,开发内嵌了场景编辑器,可用于对仿真测试过程中的车辆行驶道路模型之外,继续进行周边动态场景的搭建。 OpenScenario是一种专为自动驾驶系统仿真测试设计的场景描述语言,它基于XML格式,旨在提供一个标准化、…

动态规划题单2

第一个题单编辑到后面实在是太卡了,就新开了一个,以后应该也会 \(30\) 题为一个题单。 31.CF1580D Subsequence CF1580D Subsequence 不会笛卡尔树,但是看到题解区的妙妙解法...... 题目的式子非常大便,我们考虑把它翻译成人话: 一个子序列的价值为: \(sum*m - 每两个数及他…