敛财是什么意思| 女人肺气虚吃什么补最快| 嘴唇发麻是什么病兆| 什么是白噪音| 观音菩萨原名叫什么名| 属兔和什么属相最配| 多多益善的益是什么意思| 王加呈念什么| 佛手是什么东西| 什么是肥皂剧| 医保和农村合作医疗有什么区别| 豆沫是什么做的| 怀孕为什么不能吃韭菜| 荷花是什么时候开的| 蔓越莓是什么水果| 女大七岁有什么说法| 六十六大寿有什么讲究| 悦己是什么意思| 凶神宜忌是什么意思| 女性什么时候排卵| 西门子洗衣机不脱水是什么原因| 财神是什么生肖| 男属兔和什么属相最配| 县委副书记是什么级别| 小什么| 草头是什么菜| 上海松江有什么好玩的地方| 水浒传为什么叫水浒传| 便秘吃什么菜| 蛋白质是什么| 普洱茶是属于什么茶| 蛋蛋冰凉潮湿什么原因| 徐五行属什么| 日语亚麻得是什么意思| 白色的猫是什么品种| 为什么长湿疹| les是什么意思| 女人带貔貅有什么讲究| 大便粘稠吃什么药| 什么排球好| 乙肝表面抗原阳性是什么意思| 黑布林是什么水果| 苦夏什么意思| 动态密码是什么| 七月是什么星座| 三叉神经是什么病| 金火什么字| 为什么有的女人欲太强| 做些什么| 身正不怕影子斜是什么意思| 综合内科是看什么病| 梦到男孩子是什么意思| 什么时候立秋| 女兔配什么属相最好| 办离婚需要什么手续和证件| 产妇月子吃什么下奶多| 配菜是什么意思| 上梁不正下梁歪是什么意思| 孕妇流鼻血是什么原因| 刀子嘴豆腐心是什么意思| 小便多吃什么药| 抗磷脂综合征是什么病| 什么地爬| fruits是什么意思| 牛肉用什么调料| 而已是什么意思| 子宫肌壁回声不均匀是什么意思| 九肚鱼是什么鱼| 中午12点半是什么时辰| 乳房有硬块是什么原因| 怀孕前三个月为什么不能告诉别人| bnp是什么意思| 善存什么时间吃比较好| 夏天吃什么菜| 家的意义是什么| 学生近视配什么镜片好| 广州立冬吃什么| 益生菌什么时间段吃效果好| 今夕何夕什么意思| 舌苔厚白吃什么中成药| a型rhd阳性是什么意思| 水仙茶属于什么茶| 减肥吃什么主食| 讲师是什么级别| 心口窝疼挂什么科| 嗜睡乏力没精神容易疲劳是什么原因| 清热解毒是什么意思| 看破红尘下一句是什么| 收缩压是什么| 相濡以沫是什么意思| 干涸是什么意思| 执业药师什么时候报名| 取环后吃什么恢复子宫| 三点水一个高念什么| 胃恶心想吐是什么原因| 麻药叫什么名字| 血糖高适合吃什么| 桂花乌龙茶属于什么茶| 给小孩买什么保险好| 牙根变黑是什么原因| 为什么会得荨麻疹呢| 繁什么似锦| 啪啪啪是什么意思| 山竹有什么功效和作用| 如果是什么意思| 婴儿泡奶粉用什么水好| 拉杆是什么意思| 什么的梦| 未羊是什么意思| 独角兽是什么意思| 梦见好多羊是什么意思| 寻常疣是什么原因造成的| 家里出现蚂蚁预示什么| 草果长什么样| 眼睛疲劳用什么眼药水| 新生儿吐奶是什么原因| 瓜皮什么意思| 鼻涕有血丝是什么原因| 脑利钠肽前体值高预示什么| 喝劲酒有什么好处| 膝盖响是什么原因| 甲钴胺的副作用是什么| 授人以鱼不如授人以渔什么意思| 胎梦梦见蛇是什么意思| 两重天什么意思| 青灰色是什么颜色| 月子吃什么| 螨虫什么样子| 减肥适合吃什么水果| 绿豆什么时候收获| 膝关节疼痛用什么药效果最好| 沙拉酱是用什么做的| 时间观念是什么意思| 伏藏是什么意思| 五更泻吃什么药| 咳嗽有黄痰是什么原因| 体恤是什么意思| 头顶发热是什么原因| amk是什么品牌| 睡觉中途总醒什么原因| kda什么意思| 呦西是什么意思| 银屑病是什么| 霉菌有什么症状| 喉咙溃疡吃什么药| 包皮是什么样子的| 恶心反胃想吐吃什么药| 什么的青年| 10月28日什么星座| 相得益彰是什么意思| 抽血化验能查出什么| 百合什么时候开花| 小肚子一直疼是什么原因| 凉拌菜用什么醋最好| 大姨妈吃什么水果最好| saa是什么意思| 10月26是什么星座| 脚麻吃什么药有效| 闷骚是什么意思| 足踝外科主要看什么| 第三代身份证什么时候开始办理| 宋江是什么生肖| 汁字五行属什么| 黄痰是什么原因造成的| 沉鱼落雁闭月羞花什么意思| 夏天脚出汗是什么原因| 仙人掌煎鸡蛋治什么病| 什么鸡最好吃| 肠鸣是什么原因引起的| 00后属什么生肖| 什么是菩提心| 灵芝孢子粉是什么| 白茶是什么茶| 卷柏属于什么植物| 三七主要治什么病| 儿童查微量元素挂什么科| cognac是什么酒| 甲骨文是写在什么上面的| 太阳病是什么意思| 黑茶属于什么茶| 阉鸡是什么鸡| 西洋参吃了有什么好处| 4090是什么意思| 高度鳞状上皮内病变是什么意思| 心疼是什么意思| 58年属狗是什么命| 刺猬和豪猪有什么区别| 畏首畏尾是什么意思| 佩字五行属什么| 心脏不大是什么意思| 阳虚吃什么中药调理| 属兔的婚配什么属相好| 解构是什么意思| 做梦剪头发是什么意思| 皮肤溃烂用什么药治愈最快| 他长什么样| 脚一直出汗是什么原因| 茯苓和土茯苓有什么区别| 情何以堪 什么意思| 牛仔裤配什么上衣| 蛇为什么会咬人| rh血型是什么血型| 完全性右束支传导阻滞是什么意思| 肺部肿瘤3cm什么期| 麻烦的意思是什么| 幼儿园中班学什么| 吉士是什么| 甲状腺疾病有什么症状| 什么东西含铅量高| 医保编码是什么| 吃什么补充维生素c| 痔疮用什么药膏| 早餐吃什么最有营养又减肥| 什么是电信诈骗| ushi是什么品牌男装| 嗳气是什么| 卷饼里面配什么菜好吃| 血沉是什么意思| 瑞舒伐他汀什么时候吃最好| 产检建档需要什么资料| 孕吐什么时候出现| 驰骋沙场百战威是什么生肖| ebay是什么| 柱镜度数是什么意思| 囊肿有什么症状| 廿年是什么意思| 权志龙为什么叫gd| 1946年属什么| 什么样的人容易得痛风| 什么洗发水去屑好| 信保是什么| 个人solo什么意思| 1450是什么意思| 黄金为什么这么贵| 黄姜长什么样图片| 性侵是什么意思| 内脂豆腐是什么| 菜籽油是什么油| 青光眼是什么原因引起的| 供奉观音菩萨有什么讲究| sakose是什么牌子| sancanal是什么牌子| 梦见自己拉粑粑是什么意思| 咳嗽有痰吃什么水果| 倒卖是什么意思| 樱桃跟车厘子有什么区别| nfl是什么意思| 手术前吃什么补充营养| 放疗是什么| 手足口是什么引起的| 女同是什么意思| 五行缺什么查询免费| 吃什么可以降糖| 7月有什么活动| 干眼症吃什么食物好| 长时间手淫有什么危害| 头晕晕的是什么原因| 半夏反什么药| 什么颜色的猫最旺财| 赟读什么| 后遗症是什么意思| 舌苔白厚吃什么药| 传字五行属什么| 扦插是什么意思| 百度Jump to content

溧阳--江苏频道--人民网

From Wikipedia, the free encyclopedia
百度 因此,伏羲、女娲举规和矩,也即表示他们“规天”“矩地”以定方圆,即开辟天地的神性。

Pollard's rho algorithm is an algorithm for integer factorization. It was invented by John Pollard in 1975.[1] It uses only a small amount of space, and its expected running time is proportional to the square root of the smallest prime factor of the composite number being factorized.

Core ideas

[edit]

The algorithm is used to factorize a number , where is a non-trivial factor. A polynomial modulo , called (e.g., ), is used to generate a pseudorandom sequence. It is important to note that must be a polynomial. A starting value, say 2, is chosen, and the sequence continues as , , , etc. The sequence is related to another sequence . Since is not known beforehand, this sequence cannot be explicitly computed in the algorithm. Yet in it lies the core idea of the algorithm.

Because the number of possible values for these sequences is finite, both the sequence, which is mod , and sequence will eventually repeat, even though these values are unknown. If the sequences were to behave like random numbers, the birthday paradox implies that the number of before a repetition occurs would be expected to be , where is the number of possible values. So the sequence will likely repeat much earlier than the sequence . When one has found a such that but , the number is a multiple of , so a non-trivial divisor has been found.[2]

Once a sequence has a repeated value, the sequence will cycle, because each value depends only on the one before it. This structure of eventual cycling gives rise to the name "rho algorithm", owing to similarity to the shape of the Greek letter ρ when the values , , etc. are represented as nodes in a directed graph.

Cycle diagram resembling the Greek letter ρ

This is detected by Floyd's cycle-finding algorithm: two nodes and (i.e., and ) are kept. In each step, one moves to the next node in the sequence and the other moves forward by two nodes. After that, it is checked whether . If it is not 1, then this implies that there is a repetition in the sequence (i.e. . This works because if the is the same as , the difference between and is necessarily a multiple of . Although this always happens eventually, the resulting greatest common divisor (GCD) is a divisor of other than 1. This may be itself, since the two sequences might repeat at the same time. In this (uncommon) case the algorithm fails, it can be repeated with a different parameter.

Algorithm

[edit]

The algorithm takes as its inputs n, the integer to be factored; and ??, a polynomial in x computed modulo n. In the original algorithm, , but nowadays it is more common to use . The output is either a non-trivial factor of n, or failure.

It performs the following steps:[2]

Pseudocode for Pollard's rho algorithm

    x ← 2 // starting value
    y ← x
    d ← 1

    while d = 1:
        x ← g(x)
        y ← g(g(y))
        d ← gcd(|x - y|, n)

    if d = n: 
        return failure
    else:
        return d

Here x and y corresponds to ?? and ?? in the previous section. Note that this algorithm may fail to find a nontrivial factor even when n is composite. In that case, the method can be tried again, using a starting value of x other than 2 () or a different ??, , with .

Example factorization

[edit]

Let and .

Pollard's rho algorithm example factorization for and , with starting value 2. The example is using Floyd's cycle-finding algorithm.
i x y gcd(|x ? y|, 8051)
1 5 26 1
2 26 7474 1
3 677 871 97
4 7474 1481 1

Now 97 is a non-trivial factor of 8051. Starting values other than x = y = 2 may give the cofactor (83) instead of 97. One extra iteration is shown above to make it clear that y moves twice as fast as x. Note that even after a repetition, the GCD can return to 1.

Variants

[edit]

In 1980, Richard Brent published a faster variant of the rho algorithm. He used the same core ideas as Pollard but a different method of cycle detection, replacing Floyd's cycle-finding algorithm with the related Brent's cycle finding method.[3] CLRS gives a heuristic analysis and failure conditions (the trivial divisor is found).[2]

A further improvement was made by Pollard and Brent. They observed that if , then also for any positive integer ??. In particular, instead of computing at every step, it suffices to define ?? as the product of 100 consecutive terms modulo ??, and then compute a single . A major speed up results as 100 gcd steps are replaced with 99 multiplications modulo ?? and a single gcd. Occasionally it may cause the algorithm to fail by introducing a repeated factor, for instance when ?? is a square. But it then suffices to go back to the previous gcd term, where , and use the regular ρ algorithm from there.[note 1]

Application

[edit]

The algorithm is very fast for numbers with small factors, but slower in cases where all factors are large. The ρ algorithm's most remarkable success was the 1980 factorization of the Fermat number F8 = 1238926361552897 × 93461639715357977769163558199606896584051237541638188580280321.[4] The ρ algorithm was a good choice for F8 because the prime factor p = 1238926361552897 is much smaller than the other factor. The factorization took 2 hours on a UNIVAC 1100/42.[4]

Example: factoring n = 10403 = 101 · 103

[edit]

The following table shows numbers produced by the algorithm, starting with and using the polynomial . The third and fourth columns of the table contain additional information not known by the algorithm. They are included to show how the algorithm works.

?? ?? ?? ?? step
2 2 2 2 0
5 2 5 2 1
26 2 26 2 2
677 26 71 26 3
598 26 93 26 4
3903 26 65 26 5
3418 26 85 26 6
156 3418 55 85 7
3531 3418 97 85 8
5168 3418 17 85 9
3724 3418 88 85 10
978 3418 69 85 11
9812 3418 15 85 12
5983 3418 24 85 13
9970 3418 72 85 14
236 9970 34 72 15
3682 9970 46 72 16
2016 9970 97 72 17
7087 9970 17 72 18
10289 9970 88 72 19
2594 9970 69 72 20
8499 9970 15 72 21
4973 9970 24 72 22
2799 9970 72 72 23

The first repetition modulo 101 is 97 which occurs in step 17. The repetition is not detected until step 23, when . This causes to be , and a factor is found.

Complexity

[edit]

If the pseudorandom number occurring in the Pollard ρ algorithm were an actual random number, it would follow that success would be achieved half the time, by the birthday paradox in iterations. It is believed that the same analysis applies as well to the actual rho algorithm, but this is a heuristic claim, and rigorous analysis of the algorithm remains open.[5]

See also

[edit]

Notes

[edit]
  1. ^ Exercise 31.9-4 in CLRS

References

[edit]
  1. ^ Pollard, J. M. (1975). "A Monte Carlo method for factorization" (PDF). BIT Numerical Mathematics. 15 (3): 331–334. doi:10.1007/bf01933667. S2CID 122775546.
  2. ^ a b c Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. & Stein, Clifford (2009). "Section 31.9: Integer factorization". Introduction to Algorithms (third ed.). Cambridge, MA: MIT Press. pp. 975–980. ISBN 978-0-262-03384-8. (this section discusses only Pollard's rho algorithm).
  3. ^ Brent, Richard P. (1980). "An Improved Monte Carlo Factorization Algorithm". BIT. 20 (2): 176–184. doi:10.1007/BF01933190. S2CID 17181286.
  4. ^ a b Brent, R.P.; Pollard, J. M. (1981). "Factorization of the Eighth Fermat Number". Mathematics of Computation. 36 (154): 627–630. doi:10.2307/2007666. JSTOR 2007666.
  5. ^ Galbraith, Steven D. (2012). "14.2.5 Towards a rigorous analysis of Pollard rho". Mathematics of Public Key Cryptography. Cambridge University Press. pp. 272–273. ISBN 9781107013926..

Further reading

[edit]
[edit]
昙花什么时间开花 公安局局长是什么级别 潘多拉是什么意思 灰指甲长什么样子图片 胎儿右肾盂分离是什么意思
宝宝拉肚子吃什么好 反应蛋白测定是查什么的 什么是白虎 人流需要准备什么 抵抗是什么意思
故步自封是什么意思 跟腱炎挂什么科 豆绿色配什么颜色好看 年庚是什么意思 hr是什么意思
不想怀孕有什么办法 渣男最怕什么样的女人 乾隆的名字叫什么 扁桃体发炎吃什么好得快 agoni什么意思
双插头是什么意思hcv9jop5ns4r.cn ccs是什么意思hcv8jop3ns2r.cn 法官是什么级别hcv8jop0ns4r.cn 前列腺炎是什么症状hcv9jop2ns0r.cn 王字旁行念什么hcv8jop1ns2r.cn
74年属什么hcv8jop0ns7r.cn 高血压属于什么系统疾病hcv8jop9ns9r.cn 经常放响屁是什么原因hcv9jop4ns0r.cn 杏子不能和什么一起吃hcv8jop1ns6r.cn 早上吃什么减肥hcv8jop7ns2r.cn
子宫前置是什么意思hcv9jop4ns2r.cn 胡椒粉是什么做的hcv7jop7ns2r.cn 王者风范是什么意思hcv9jop1ns1r.cn 去鱼腥味最好的方法是什么hcv8jop6ns2r.cn 生理年龄是什么意思hcv8jop5ns4r.cn
双侧肾盂分离是什么意思hcv7jop6ns9r.cn 容易犯困是什么原因hcv8jop9ns0r.cn 半月板是什么hcv8jop3ns4r.cn 龙胆泻肝丸治什么病hcv8jop5ns6r.cn 肾虚吃什么食物hcv9jop7ns9r.cn
百度