Pollard-Rho学习笔记
前置知识:生日悖论
不考虑出生年份(假设每年都是 365 天),问:一个房间中至少多少人,才能使其中两个人生日相同的概率达到
答案是23
考虑一个问题,设置一个数据n,在
1.利用最大公约数求出一个约数
n和某个数的公约数一定是n的约数,即
满足这个条件的k很多,n的因数的大部分倍数都可行
我们通过
举个例子:
n=50,c=6,x_1=1,f(x) 生成的数据为:
可以发现在x以后,生成的数就在
如果将这些数如下图一样排列起来,会发现这个图像酷似一个
该式子满足
证明:
若,则可以将它们表示为 , ,满足 。
,因此 ,其中 。 同理,
,因此 。
根据生日悖论,序列中的不同值约为
将
实现上可以使用floyd判环或倍增优化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?