社区
数据结构与算法
帖子详情
一个概率问题:1024bit的大整数,能够完全分解为小于65536的质因子的概率有多大?
showjim
2009-10-07 09:04:51
比如:32bit的整数除了大于65536的质数外都可以 完全分解质因子。
不求精确解,有好的想法也行。
...全文
337
9
打赏
收藏
一个概率问题:1024bit的大整数,能够完全分解为小于65536的质因子的概率有多大?
比如:32bit的整数除了大于65536的质数外都可以 完全分解质因子。 不求精确解,有好的想法也行。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
daidodo
2009-10-11
打赏
举报
回复
mark
绿色夹克衫
2009-10-10
打赏
举报
回复
关于求近似的部分,比较复杂,以我的水平搞起来比较费神,可以问问mathe,
对他来说可能不算太难!
[Quote=引用 7 楼 sbwwkmyd 的回复:]
引用 5 楼 litaoye 的回复:
大概是(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是65536-2^1024 之间的质数
如果是求近似的话,可以根据素数的密度做一个近似,结果k应该满足
2^(-1012 / ln(2^16)) < k < 2^(-1012 / ln(2^1024))
不过这个范围比较大,可以用积分去逼近一下试试
我曾经想过以2^x (32 <=x <=2048)这些数点上迭代近似值,又怕幂次方太大(1024也可能是2048),运算过程“失之毫厘,差之千里”;除非可以抛弃幂次方运算,某个因子差几倍也没关系。
引用 6 楼 feiyangdn 的回复:
大概约为
1-(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是从2到65536之间的所有素数(包括2)
这个明显是错误的,怎么可能和2^1024这个数毫无关系呢?
引用 6 楼 feiyangdn 的回复:
解释:
任意一个整数(很大),被2整除的概率为1/2, 在不被2整除的前提下被3整除的概率为1/3,同时不被2和3整除的情况下被5整除的概率为1/5。。。。。。
这没有去证明,只有素数序列才能满足上面的规则。
您应该没有看清问题,要求是“完全分解质因子”,不过也谢谢你的回复。
谢谢大家的关注,继续等待...
[/Quote]
feiyangdn
2009-10-09
打赏
举报
回复
大概约为
1-(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是从2到65536之间的所有素数(包括2)
举个例子:
32bit的整数除了大于10的质数外都可以 完全分解质因子的概率约为
1-(1-1/2)(1-1/3)(1-1/5)(1-1/7) = 1-24/105 = 81/105
其中大数与参考数相差越悬殊那么概率值越精确
解释:
任意一个整数(很大),被2整除的概率为1/2, 在不被2整除的前提下被3整除的概率为1/3,同时不被2和3整除的情况下被5整除的概率为1/5。。。。。。
这没有去证明,只有素数序列才能满足上面的规则。
绿色夹克衫
2009-10-09
打赏
举报
回复
大概是(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是65536-2^1024 之间的质数
如果是求近似的话,可以根据素数的密度做一个近似,结果k应该满足
2^(-1012 / ln(2^16)) < k < 2^(-1012 / ln(2^1024))
不过这个范围比较大,可以用积分去逼近一下试试
showjim
2009-10-09
打赏
举报
回复
[Quote=引用 5 楼 litaoye 的回复:]
大概是(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是65536-2^1024 之间的质数
如果是求近似的话,可以根据素数的密度做一个近似,结果k应该满足
2^(-1012 / ln(2^16)) < k < 2^(-1012 / ln(2^1024))
不过这个范围比较大,可以用积分去逼近一下试试
[/Quote]
我曾经想过以2^x (32<=x<=2048)这些数点上迭代近似值,又怕幂次方太大(1024也可能是2048),运算过程“失之毫厘,差之千里”;除非可以抛弃幂次方运算,某个因子差几倍也没关系。
[Quote=引用 6 楼 feiyangdn 的回复:]
大概约为
1-(1-1/p1)(1-1/p2)(1-1/p3)......(1-1/pn)
其中p1-pn是从2到65536之间的所有素数(包括2)
[/Quote]
这个明显是错误的,怎么可能和2^1024这个数毫无关系呢?
[Quote=引用 6 楼 feiyangdn 的回复:]
解释:
任意一个整数(很大),被2整除的概率为1/2, 在不被2整除的前提下被3整除的概率为1/3,同时不被2和3整除的情况下被5整除的概率为1/5。。。。。。
这没有去证明,只有素数序列才能满足上面的规则。
[/Quote]
您应该没有看清问题,要求是“完全分解质因子”,不过也谢谢你的回复。
谢谢大家的关注,继续等待...
showjim
2009-10-08
打赏
举报
回复
谢谢楼上的,是要完全分解,也就是说质因子都要小于65536。
对于求精确解的递归算法,最大深度接近1000,每层的计算量分解成6千多个递归。时间复杂度太高,不能满足需求。
求出n以内质数的个数,对于解决这个问题好像也没有什么帮助。
不过还是谢谢你的回复。
PeacefulBY
2009-10-08
打赏
举报
回复
如果是要求分解后的所有质因子部分小于65536的话,可以用素数筛法和容斥原理,求出65535以内的所有素数2、3、5、7......那么,2的倍数满足条件,3的倍数满足条件等等(注意减去重复计算的部分,例如6的倍数),除此之外,大于65535的质数,或者在这个筛的过程中没有筛到的数(即质因子中没有小于65535的),就是不满足条件的;
如果是要求分解后的所有质因子都要小于65535的话,依然可以用上面的思想,用f(n)表示n以内满足条件的数的个数,那么对于n以内的所有偶数,除以2之后相当于f(n/2);对于n以内的所有3的倍数,除以3之后相当于f(n/3);依此类推,依然注意减去重复计算的部分,除此之外,如果都不能被65535内的任一个素数整除,说明其必有质因子大于65535。这里用到的是递归的思想。
以上是求精确解的方法。非精确解的话,有一个公式表示对于很大的n以内质数的个数,也许会有帮助,鄙人数论功底不行,爱莫能助~
swandragon
2009-10-08
打赏
举报
回复
路过,帮顶
PeacefulBY
2009-10-08
打赏
举报
回复
[Quote=引用 2 楼 sbwwkmyd 的回复:]
谢谢楼上的,是要完全分解,也就是说质因子都要小于65536。
对于求精确解的递归算法,最大深度接近1000,每层的计算量分解成6千多个递归。时间复杂度太高,不能满足需求。
求出n以内质数的个数,对于解决这个问题好像也没有什么帮助。
不过还是谢谢你的回复。
[/Quote]
的确复杂度很高,不知动态规划能有多少帮助;或者可以考虑转化为下面的问题:
设m为65536内最大的质数,k为65535内质数个数(约6000)
那么,所有满足条件的数可以表示为2^A1 * 3^A2 * 5^A3 *......* m^Ak
其中,Ai为非负整数,现在问题即为,求下面不等式的所有非负整数解的个数:
2^A1 * 3^A2 * 5^A3 *......* m^Ak <= 2^1024
两边取对数得:
A1*log2 + A2*log3 + A3*log5 + ...... + Ak*logm <= 1024*log2
取对数后避免了大整数运算。这是一个背包问题,求精确解的话是NP难的;求近似解或许可以通过离散化进行动态规划……
另,也可以看成是高维立方体内的格点问题,但这似乎是一个世界性难题,不知道现在有没有解决……
吉大 各种基本ACM必备算法基础
吉大 各种基本ACM必备算法基础
整数因子
分解
(转)
整数因子
分解
(转) 相对于素数判定来说,因子
分解
的实现就没办法达到那么快速了。因子
分解
至今仍没有类似于素数判定的多项式算法,这也成为了RSA公钥系统安全得以保障的基础。鉴于这两个
问题
的难度相差较大,在我们施行
分解
之前,最好是预先知道目标整数的确不是
一个
素数,否则很可能花费了很大力气只干了素数判定的活——杀鸡用牛刀了。因子分
高效整数质因数
分解
算法实践指南
非确定性算法(Nondeterministic Algorithms)在解决质因数
分解
问题
时,
能够
找到
一个
因数的机率非零。
一个
典型的非确定性算法是椭圆曲线
分解
法(Elliptic Curve Factorization),它是一种
概率
算法,通过椭圆曲线上的点来寻找整数的因数。相较于确定性算法,非确定性算法在某些情况下可能更加高效,但是其结果的可靠性较低。# 示例:椭圆曲线
分解
法的Python实现片段(仅为示例,并非完整算法实现)# 初始化随机曲线参数# 选择随机点# 开始椭圆曲线计算过程。
Java:实现正整数
分解
质因数算法(附带源码)
Java:实现正整数
分解
质因数算法(附带源码)
量子计算论文精讲 | NISQ量子计算机上的整数因子
分解
Shor算法揭示了通用量子计算机在整数因子
分解
问题
上的高效性,极大的推动了量子计算领域的发展。然而,当前的量子计算机仍在含噪声中规模量子计算机(Noisy-Intermediate-Scale Quantum, NISQ)阶段,尚不能支持实用规模的Shor算法。近日,来自清华大学龙桂鲁教授团队的一篇论文基于密码学泰斗Schnorr的工作在超导量子计算机上
分解
了48位整数,对NISQ量子计算机破解RSA密码的潜力作乐观估计,引起了学界广泛的讨论和一定的争议。
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章