社区
数据结构与算法
帖子详情
一个概率问题:1024bit的大整数,能够完全分解为小于65536的质因子的概率有多大?
showjim
2009-10-07 09:04:51
比如:32bit的整数除了大于65536的质数外都可以 完全分解质因子。
不求精确解,有好的想法也行。
...全文
275
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难的;求近似解或许可以通过离散化进行动态规划……
另,也可以看成是高维立方体内的格点问题,但这似乎是一个世界性难题,不知道现在有没有解决……
整数因子
分解
(转)
整数因子
分解
(转) 相对于素数判定来说,因子
分解
的实现就没办法达到那么快速了。因子
分解
至今仍没有类似于素数判定的多项式算法,这也成为了RSA公钥系统安全得以保障的基础。鉴于这两个
问题
的难度相差较大,在我们施行
分解
之前,最好是预先知道目标整数的确不是
一个
素数,否则很可能花费了很大力气只干了素数判定的活——杀鸡用牛刀了。因子分
量子计算论文精讲 | NISQ量子计算机上的整数因子
分解
Shor算法揭示了通用量子计算机在整数因子
分解
问题
上的高效性,极大的推动了量子计算领域的发展。然而,当前的量子计算机仍在含噪声中规模量子计算机(Noisy-Intermediate-Scale Quantum, NISQ)阶段,尚不能支持实用规模的Shor算法。近日,来自清华大学龙桂鲁教授团队的一篇论文基于密码学泰斗Schnorr的工作在超导量子计算机上
分解
了48位整数,对NISQ量子计算机破解RSA密码的潜力作乐观估计,引起了学界广泛的讨论和一定的争议。
确定整数的平方根是否为整数的最快方法
我正在寻找确定long值是否是完美平方(即,其平方根是另
一个
整数)的最快方法: 通过使用内置的Math.sqrt()函数,我已经完成了简单的方法,但是我想知道是否有一种方法可以通过将自己
非对称加密算法——RSA
非对称加密算法——RSA 512位(或
1024
位)秘钥,计算量极大,难破解(实战中可以用脚本来加解密,通常ctf密码题中有大几率遇到)。 数学基础 1.欧拉函数:对于
一个
正整数n,
小于
且与n互素的正整数的个数,记为φ(n)。 对于
一个
素数n,可知φ(n)=n-1; 对于两个素数p和q,他们的乘积满足n=pq,则可知φ(n)=(p-1)(q-1)。 2.欧几里得算法:gcd(a,b)表示a和b的最大公因数,如gcd(a,b)=1,则表示a,b的最大公因数为1,说明a和b互素。 3.同余:两个整数a,b,若它们
poj1811
题意:给定
一个
64位整数,问是否为质数,如果不是,则输出其最小因子。 分析: 经典题!! 数学题 miller_rabbin素数判定。若不是,则pollard_rho
分解
质因子
,找到最小即可。 Miller-rabin Miller-rabin算法是
一个
用来快速判断
一个
正整数是否为素数的算法。它利用了费马小定理,即:如果p是质数,且a,p互质,那么a^(p-1) mod p恒等于1...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章