ρ-алгоритм Полларда — алгоритм факторизації цілих чисел, що ґрунтується на пошуку циклу в послідовності і деяких наслідках із парадоксу днів народжень. Його запропонував [en] (1975). Алгоритм найбільш ефективний для факторизації складених чисел із досить малими множниками в розкладі. Обчислювальна складність оцінюється як .
У всіх варіантах ρ-алгоритму Полларда будується числова послідовність, елементи якої, починаючи з деякого номера n, утворюють цикл, що можна проілюструвати розташуванням членів послідовності у вигляді грецької літери ρ. Це й послужило назвою для сімейства методів.
Історія алгоритму
Наприкінці 60-х років XX століття Дональд Кнут опублікував досить ефективний алгоритм пошуку циклу в послідовності, також відомий, як алгоритм «черепаха та заєць», який він пов'язував з ім'ям Флойда. [en], Дональд Кнут та інші математики проаналізували поведінку цього алгоритму в середньому випадку. Було запропоновано кілька модифікацій та поліпшень алгоритму.
У 1975 році Поллард опублікував статтю, в якій він, ґрунтуючись на алгоритмі Флойда виявлення циклів, виклав ідею алгоритму факторизації чисел, який виконується за час, пропорційний . Автор назвав його методом факторизації Монте-Карло, тому, що в процесі обчислення генерується псевдовипадкова послідовність чисел. Проте пізніше метод все-таки назвали ρ-алгоритмом Полларда.
У 1981 році [ru] і Джон Поллард за допомогою цього алгоритму знайшли менший дільник восьмого числа Ферма .
Так, , де — просте число, що складається з 62 десяткових цифр.
У межах проекту [en]» алгоритм Полларда допоміг знайти дільник числа довжиною 19 цифр. Більші дільники також можна б знайти, але відкриття [ru] зробило алгоритм Полларда неконкурентоспроможним.
Опис алгоритму
Оригінальна версія
Розглянемо послідовність цілих чисел , таку що та , де — число, яке потрібно факторизувати. Оригінальний алгоритм виглядає таким чином.
- 1. Будемо обчислювати трійки чисел
- , де .
- Причому кожна така трійка отримується з попередньої.
- 2. Щоразу, коли число кратне числу (скажімо, ), будемо обчислювати найбільший спільний дільник будь-яким відомим методом.
- 3. Якщо , то знайдено часткове розкладання числа , причому .
- Знайдений дільник може бути складовим, тому його також необхідно факторизувати. Якщо число складене, то продовжуємо алгоритм з модулем .
- 4. Обчислення повторюються раз. Наприклад, можна зупинити алгоритм при . Якщо при цьому число не було до кінця факторизовано, можна вибрати, наприклад, інше початкове число .
Сучасна версія
Нехай складене ціле додатне число, яке потрібно розкласти на множники. Алгоритм виглядає таким чином:
- Вибираємо невелике число та будуємо послідовність , визначаючи кожне наступне як .
- Одночасно на кожному i-ому кроці обчислюємо для будь-яких , таких, що , наприклад, .
- Якщо виявили, що , то обчислення закінчується, і знайдене на попередньому кроці число є дільником . Якщо не є простим числом, то процедуру пошуку дільників можна продовжити, узявши як число .
Як на практиці обирати функцію ? Функція має бути не надто складною для обчислення, але в той же час не має бути лінійним многочленом, а також не повинна породжувати взаємно однозначне відображення. Зазвичай за беруть функцію або . Однак не слід застосовувати функції та .
Якщо відомо, що для дільника числа справедливо при деякому , то має сенс застосувати .
Істотним недоліком алгоритму в такий реалізації є необхідність зберігати велику кількість попередніх значень .
Покращення алгоритму
Початкова версія алгоритму має низку недоліків. На даний момент[] існує кілька підходів до поліпшення оригінального методу.
Нехай . Зауважимо, що й , то , тому, якщо пара дає нам розв'язок, то розв'язок дасть будь-яка пара .
Тому, немає потреби перевіряти всі пари , а можна обмежитися парами виду , де , і пробігає набір послідовних значень 1, 2, 3,…, а набуває значення з інтервалу . Наприклад, , , а .
Цю ідею запропонував [ru] у 1980 році і вона дозволяє зменшити кількість виконуваних операцій приблизно на чверть (25%).
Ще одну варіацію ρ-методу Поларда розробив Флойд. За Флойдом, значення оновлюється на кожному кроці за формулою , тому на кроці i будуть отримані значення , , і НСД на цьому кроці обчислюється для та .
Приклад факторизації числа
Нехай , , , .
i | xi | yi | НСД (|xi −yi|, 8051) |
---|---|---|---|
1 | 5 | 26 | 1 |
2 | 26 | 7474 | 1 |
3 | 677 | 871 | 97 |
Таким чином, 97 — нетривіальний дільник числа 8051. Використовуючи інші варіанти поліному , можна також отримати дільник 83.
Обґрунтування ρ-методу Полларда
Алгоритм ґрунтується на відомому парадоксі днів народження.
Теорема (Парадокс днів народження)
|
Слід зазначити, що ймовірність в парадоксі днів народження досягається при .
Нехай послідовність складається з різниць , що перевіряються під час роботи алгоритму. Визначимо нову послідовність , де , — менший з дільників числа .
Усі члени послідовності менші . Якщо розглядати її як випадкову послідовність цілих чисел, менших , то, згідно з парадоксом днів народження, імовірність того, що серед її членів трапляться два однакових, перевищить при , тоді має бути не менше .
Якщо , тоді , тобто, для деякого цілого . Якщо , що виконується з великою ймовірністю, то шуканий дільник числа буде знайдено як . Оскільки , то з імовірністю, що перевищує 0,5, дільник буде знайдено за ітерацій.
Складність алгоритму
Щоб оцінити складність алгоритму, можна розглядати послідовність, що будується в процесі обчислень, як випадкову (звісно, ні про яку строгість при цьому говорити не можна). Щоб повністю факторизувати число довжиною біт, достатньо знайти всі його дільники, які не переважають , що вимагає максимум порядку арифметичних операцій, або бітових операцій.
Тому складність алгоритму оцінюється, як . Однак у цій оцінці не враховуються накладні витрати з обчислення найбільшого спільного дільника. Отримана складність алгоритму, хоча і не є точною, проте достатньо добре узгоджується з практикою.
Виконується така теорема. Нехай — складене число. Тоді існує така стала , що для будь-якого додатного числа ймовірність події, що полягає в тому, що ρ-метод Поларда не знайде нетривіального дільника за час , не перевершує величини . Ця теорема випливає з парадоксу днів народження.
Особливості реалізації
Обсяг пам'яті, використовуваний алгоритмом, можна значно зменшити.
int Rho-Полард (int N) { int x = random(1, N-2); int y = 1; int i = 0; int stage = 2; while (Н.С.Д.(N, abs(x - y)) == 1) { if (i == stage ){ y = x; stage = stage*2; } x = (x*x + 1) (mod N); i = i + 1; } return Н.С.Д(N, abs(x-y)); }
у цьому варіанті обчислення потребує зберігати в пам'яті всього три змінні , , і , що вигідно відрізняє метод в такій реалізації від інших методів факторизації чисел.
Розпаралелювання алгоритму
Алгоритм Полларда дозволяє розпаралелювання з використанням будь-якого стандарту паралельних обчислень (наприклад, OpenMP та ін.).
Існує декілька варіантів розпаралелювання, але їх спільна ідея полягає в тому, що кожний процесор виконує послідовний алгоритм, причому початкове число та/або поліном мають бути різними для кожного процесора. Очікується, що на якомусь процесорі початкові параметри (випадково) виявляться більш вдалими і дільник буде знайдено швидше, однак цей випадок недетермінований (імовірнісний). Прискорення від такої паралельної реалізації значно менше лінійного.
Припустимо, що є однакових процесорів. Якщо ми використовуємо різних послідовностей (тобто, різних поліномів ), то ймовірність того, що перші чисел в цих послідовностях будуть різними за модулем приблизно дорівнює . Таким чином, прискорення можна оцінити як . Тобто, збільшення швидкості вдвічі можна очікувати, якщо процесорів буде вчетверо більше.
Річард Крандалл припустив, що можна досягти прискорення , однак на 2000-й рік це твердження не було перевірено.
Див. також
Примітки
- Перший опис алгоритму «черепахи та зайця» з'явився в другому томі Мистецтва програмування Дональда Кнута (Knuth, Donald E. (1969), The Art of Computer Programming, vol. II: Seminumerical Algorithms, Addison-Wesley), у вправах 6 та 7 (стор. 7). На сторінці 4 Кнут приписує цей алгоритм Флойду, не посилаючись на джерела. Хоча Флойд і опублікував 1967 року статтю: Floyd, R.W. (1967), Non-deterministic Algorithms, J. ACM, 14 (4): 636—644, doi:10.1145/321420.321422, однак у ній він описав алгоритми пошуку простих циклів в орієнтованому графі.
- Brent, 1980, An Improved Monte Carlo Factorization Algorithm.
- Koshy, 2007, Elementary Number Theory with Applications.
- Childs, 2009, 471-473.
- Brent, 1999, Some parallel algorithms for integer factorization..
- Pollard, 1975, A Monte Carlo method for factorization.
- Ішмухаметов, 2011, с. 64.
- Н. Ю. Золотих. Лекції по комп'ютерній алгебрі. Лекция 11. ρ-метод Полларда. [ 30 жовтня 2014 у Wayback Machine.]
- Ішмухаметов, 2011, Методи факторизації натуральних чисел: Навчальний посібник.
- Brent, 1980, с. 176-184.
- Reisel, 2012, Selected Areas in Cryptography. Prime Numbers and Computer Methods for Factorization. 2nd ed..
- Cormen, 2001, с. 976, Introduction to Algorithms. Section 31.9. Integer Factorization. Pollard's rho heuristic..
- Crandall, 1999, Parallelization of Polldar-rho factorization.
Література
- Ішмухаметов Ш. Т. Методи факторизації натуральних чисел: Навчальний посібник. — Казань : Казанський Університет, 2011. — С. 61-64.
- Василенко О. Н. Теоретико-числові алгоритми в криптографії. — М. : МЦНМО, 2003. — 328 с. — .
- Ю. П. Соловйов, В. А. Садовничий, Е. Т. Шавгулидзе, В. В. Бєлокуров. Еліптичні криві та сучасні алгоритми теорії чисел. Москва-Іжевськ: Інститут комп'ютерних досліджень, 2003.
- Brent, Richard P. (1980), (PDF), BIT, 20: 176—184, doi:10.1007/BF01933190, архів оригіналу (PDF) за 24 вересня 2009, процитовано 29 жовтня 2014
- Brent R.P. Деякі Паралельні алгоритми факторизації чисел. — 1999. — С. 7. — DOI: .
- Childs, Lindsay N. Congruences // Введення у вищу алгебру = Concrete Introduction to Higher Algebra. — 3. — USA : Springer, 2009. — С. 471-473. — .
- Cormen T.H., Leiserson C.E., Rivest R.L., Stein C. Алгоритми: побудова й аналіз = Introduction to algorithms. — 2. — USA : MIT Press, 2001. — С. 897-907. — .
- Crandall R.E. Розпаралелювання P-алгоритму факторизації Поларда. — 1999.
- Koshy T. Congruences // Елементарна теорія чисел та її додатки = Elementary Number Theory with Applications. — 2. — USA : Academic Press, 2007. — С. 238. — .
- Pollard, J. M. (1975), (PDF), BIT Numerical Mathematics, 15 (3): 331—334, архів оригіналу (PDF) за 21 січня 2022, процитовано 13 грудня 2021
- Pollard J. M. Методи факторизації і перевірка простоти. : ( )[] = Theorems on factorization and primality testing. // Mathematical Proceedings of the Cambridge Philosophical Society. — 1974. — Т. 76, № 3. — С. 521. — DOI:10.1017/S0305004100049252.
- Reisel, H. Прості числа та комп'ютерні методи факторизації = Prime Numbers and Computer Methods for Factorization. — 2-е. — USA : Springer, 2012. — С. 183. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ne plutati z r algoritm Pollarda algoritm faktorizaciyi cilih chisel sho gruntuyetsya na poshuku ciklu v poslidovnosti i deyakih naslidkah iz paradoksu dniv narodzhen Jogo zaproponuvav en 1975 Algoritm najbilsh efektivnij dlya faktorizaciyi skladenih chisel iz dosit malimi mnozhnikami v rozkladi Obchislyuvalna skladnist ocinyuyetsya yak O N 1 4 displaystyle O N 1 4 Chislova poslidovnist zaciklyuyetsya pochinayuchi z deyakogo n Cikl viglyadaye yak grecka litera r U vsih variantah r algoritmu Pollarda buduyetsya chislova poslidovnist elementi yakoyi pochinayuchi z deyakogo nomera n utvoryuyut cikl sho mozhna proilyustruvati roztashuvannyam chleniv poslidovnosti u viglyadi greckoyi literi r Ce j posluzhilo nazvoyu dlya simejstva metodiv Istoriya algoritmuNaprikinci 60 h rokiv XX stolittya Donald Knut opublikuvav dosit efektivnij algoritm poshuku ciklu v poslidovnosti takozh vidomij yak algoritm cherepaha ta zayec yakij vin pov yazuvav z im yam Flojda en Donald Knut ta inshi matematiki proanalizuvali povedinku cogo algoritmu v serednomu vipadku Bulo zaproponovano kilka modifikacij ta polipshen algoritmu U 1975 roci Pollard opublikuvav stattyu v yakij vin gruntuyuchis na algoritmi Flojda viyavlennya cikliv viklav ideyu algoritmu faktorizaciyi chisel yakij vikonuyetsya za chas proporcijnij N 1 4 displaystyle N 1 4 Avtor nazvav jogo metodom faktorizaciyi Monte Karlo tomu sho v procesi obchislennya generuyetsya psevdovipadkova poslidovnist chisel Prote piznishe metod vse taki nazvali r algoritmom Pollarda U 1981 roci ru i Dzhon Pollard za dopomogoyu cogo algoritmu znajshli menshij dilnik vosmogo chisla Ferma F 8 2 2 8 1 displaystyle F 8 2 2 8 1 Tak F 8 1238926361552897 p 62 displaystyle F 8 1238926361552897 cdot p 62 de p 62 displaystyle p 62 proste chislo sho skladayetsya z 62 desyatkovih cifr U mezhah proektu en algoritm Pollarda dopomig znajti dilnik chisla 2 2386 1 displaystyle 2 2386 1 dovzhinoyu 19 cifr Bilshi dilniki takozh mozhna b znajti ale vidkrittya ru zrobilo algoritm Pollarda nekonkurentospromozhnim Opis algoritmuOriginalna versiya Rozglyanemo poslidovnist cilih chisel x n displaystyle x n taku sho x 0 2 displaystyle x 0 2 ta x i 1 x i 2 1 m o d N displaystyle x i 1 x i 2 1 mathrm mod N de N displaystyle N chislo yake potribno faktorizuvati Originalnij algoritm viglyadaye takim chinom 1 Budemo obchislyuvati trijki chisel x i x 2 i Q i i 1 2 displaystyle x i x 2i Q i i 1 2 de Q i j 1 i x 2 j x j m o d N displaystyle Q i equiv prod j 1 i x 2j x j mathrm mod N Prichomu kozhna taka trijka otrimuyetsya z poperednoyi dd 2 Shorazu koli chislo i displaystyle i kratne chislu m displaystyle m skazhimo m 100 displaystyle m 100 budemo obchislyuvati najbilshij spilnij dilnik d i G C D Q i N displaystyle d i mathrm GCD Q i N bud yakim vidomim metodom 3 Yaksho 1 lt d i lt N displaystyle 1 lt d i lt N to znajdeno chastkove rozkladannya chisla N displaystyle N prichomu N d i N d i displaystyle N d i times N d i Znajdenij dilnik d i displaystyle d i mozhe buti skladovim tomu jogo takozh neobhidno faktorizuvati Yaksho chislo N d i displaystyle N d i skladene to prodovzhuyemo algoritm z modulem N N d i displaystyle N N d i dd 4 Obchislennya povtoryuyutsya S displaystyle S raz Napriklad mozhna zupiniti algoritm pri i S 10 5 displaystyle i S 10 5 Yaksho pri comu chislo ne bulo do kincya faktorizovano mozhna vibrati napriklad inshe pochatkove chislo x 0 displaystyle x 0 Suchasna versiya Nehaj N displaystyle N skladene cile dodatne chislo yake potribno rozklasti na mnozhniki Algoritm viglyadaye takim chinom Vibirayemo nevelike chislo x 0 displaystyle x 0 ta buduyemo poslidovnist x n n 0 1 2 displaystyle x n n 0 1 2 viznachayuchi kozhne nastupne yak x n 1 F x n m o d N displaystyle x n 1 F x n mathrm mod N Odnochasno na kozhnomu i omu kroci obchislyuyemo d G C D N x i x j displaystyle d mathrm GCD N x i x j dlya bud yakih i displaystyle i j displaystyle j takih sho j lt i displaystyle j lt i napriklad i 2 j displaystyle i 2j Yaksho viyavili sho d gt 1 displaystyle d gt 1 to obchislennya zakinchuyetsya i znajdene na poperednomu kroci chislo d displaystyle d ye dilnikom N displaystyle N Yaksho N d displaystyle N d ne ye prostim chislom to proceduru poshuku dilnikiv mozhna prodovzhiti uzyavshi yak N displaystyle N chislo N N d displaystyle N N d Yak na praktici obirati funkciyu F x displaystyle F x Funkciya maye buti ne nadto skladnoyu dlya obchislennya ale v toj zhe chas ne maye buti linijnim mnogochlenom a takozh ne povinna porodzhuvati vzayemno odnoznachne vidobrazhennya Zazvichaj za F x displaystyle F x berut funkciyu F x x 2 1 m o d N displaystyle F x x 2 pm 1 mathrm mod N abo F x x 2 a m o d N displaystyle F x x 2 pm a mathrm mod N Odnak ne slid zastosovuvati funkciyi x 2 2 displaystyle x 2 2 ta x 2 displaystyle x 2 Yaksho vidomo sho dlya dilnika p displaystyle p chisla N displaystyle N spravedlivo p 1 m o d k displaystyle p equiv 1 mathrm mod k pri deyakomu k gt 2 displaystyle k gt 2 to maye sens zastosuvati F x x k b displaystyle F x x k b Istotnim nedolikom algoritmu v takij realizaciyi ye neobhidnist zberigati veliku kilkist poperednih znachen x j displaystyle x j Pokrashennya algoritmu Pochatkova versiya algoritmu maye nizku nedolikiv Na danij moment koli isnuye kilka pidhodiv do polipshennya originalnogo metodu Nehaj F x x 2 1 m o d N displaystyle F x x 2 1 mathrm mod N Zauvazhimo sho j x j x i 0 m o d p displaystyle x j x i equiv 0 mathrm mod p to f x j f x i 0 m o d p displaystyle f x j f x i equiv 0 mathrm mod p tomu yaksho para x i x j displaystyle x i x j daye nam rozv yazok to rozv yazok dast bud yaka para x i k x j k displaystyle x i k x j k Tomu nemaye potrebi pereviryati vsi pari x i x j displaystyle x i x j a mozhna obmezhitisya parami vidu x i x j displaystyle x i x j de j 2 k displaystyle j 2 k i k displaystyle k probigaye nabir poslidovnih znachen 1 2 3 a i displaystyle i nabuvaye znachennya z intervalu 2 k 1 2 k 1 displaystyle 2 k 1 2 k 1 Napriklad k 3 displaystyle k 3 j 2 3 8 displaystyle j 2 3 8 a i 9 16 displaystyle i in 9 16 Cyu ideyu zaproponuvav ru u 1980 roci i vona dozvolyaye zmenshiti kilkist vikonuvanih operacij priblizno na chvert 25 She odnu variaciyu r metodu Polarda rozrobiv Flojd Za Flojdom znachennya y displaystyle y onovlyuyetsya na kozhnomu kroci za formuloyu y F 2 y F F y displaystyle y F 2 y F F y tomu na kroci i budut otrimani znachennya x i F i x 0 displaystyle x i F i x 0 y i x 2 i F 2 i x 0 displaystyle y i x 2i F 2i x 0 i NSD na comu kroci obchislyuyetsya dlya N displaystyle N ta y x displaystyle y x Priklad faktorizaciyi chisla Nehaj N 8051 displaystyle N 8051 F x x 2 1 m o d 8051 displaystyle F x x 2 1 mathrm mod 8051 x 0 y 0 2 displaystyle x 0 y 0 2 y i 1 F F y i displaystyle y i 1 F F y i i xi yi NSD xi yi 8051 1 5 26 1 2 26 7474 1 3 677 871 97 Takim chinom 97 netrivialnij dilnik chisla 8051 Vikoristovuyuchi inshi varianti polinomu F x displaystyle F x mozhna takozh otrimati dilnik 83 Obgruntuvannya r metodu PollardaAlgoritm gruntuyetsya na vidomomu paradoksi dniv narodzhennya Teorema Paradoks dniv narodzhennya Nehaj l gt 0 displaystyle lambda gt 0 Dlya vipadkovoyi vibirki z l 1 displaystyle l 1 elementiv kozhnij z yakih menshij vid q displaystyle q de l 2 l q displaystyle l sqrt 2 lambda q jmovirnist togo sho dva elementi viyavlyatsya odnakovimi p gt 1 exp l displaystyle p gt 1 exp lambda Slid zaznachiti sho jmovirnist p 0 5 displaystyle p 0 5 v paradoksi dniv narodzhennya dosyagayetsya pri l 0 69 displaystyle lambda approx 0 69 Nehaj poslidovnist u n displaystyle u n skladayetsya z riznic x i x j displaystyle x i x j sho pereviryayutsya pid chas roboti algoritmu Viznachimo novu poslidovnist z n displaystyle z n de z n u n m o d q displaystyle z n u n mathrm mod q q displaystyle q menshij z dilnikiv chisla N displaystyle N Usi chleni poslidovnosti z n displaystyle z n menshi N displaystyle sqrt N Yaksho rozglyadati yiyi yak vipadkovu poslidovnist cilih chisel menshih q displaystyle q to zgidno z paradoksom dniv narodzhennya imovirnist togo sho sered l 1 displaystyle l 1 yiyi chleniv traplyatsya dva odnakovih perevishit 1 2 displaystyle 1 2 pri l 0 69 displaystyle lambda approx 0 69 todi l displaystyle l maye buti ne menshe 2 l q 1 4 q 1 18 q displaystyle sqrt 2 lambda q approx sqrt 1 4q approx 1 18 sqrt q Yaksho z i z j displaystyle z i z j todi x i x j 0 m o d q displaystyle x i x j equiv 0 mathrm mod q tobto x i x j k q displaystyle x i x j kq dlya deyakogo cilogo k displaystyle k Yaksho x i x j displaystyle x i neq x j sho vikonuyetsya z velikoyu jmovirnistyu to shukanij dilnik q displaystyle q chisla N displaystyle N bude znajdeno yak G C D N x i x j displaystyle mathrm GCD N x i x j Oskilki q n 1 4 displaystyle sqrt q leqslant n 1 4 to z imovirnistyu sho perevishuye 0 5 dilnik N displaystyle N bude znajdeno za 1 18 N 1 4 displaystyle 1 18 times N 1 4 iteracij Skladnist algoritmuShob ociniti skladnist algoritmu mozhna rozglyadati poslidovnist sho buduyetsya v procesi obchislen yak vipadkovu zvisno ni pro yaku strogist pri comu govoriti ne mozhna Shob povnistyu faktorizuvati chislo N displaystyle N dovzhinoyu b displaystyle beta bit dostatno znajti vsi jogo dilniki yaki ne perevazhayut N displaystyle sqrt N sho vimagaye maksimum poryadku N displaystyle sqrt N arifmetichnih operacij abo N 1 4 b 2 2 b 4 b 2 displaystyle N 1 4 beta 2 2 beta 4 beta 2 bitovih operacij Tomu skladnist algoritmu ocinyuyetsya yak O N 1 4 displaystyle O N 1 4 Odnak u cij ocinci ne vrahovuyutsya nakladni vitrati z obchislennya najbilshogo spilnogo dilnika Otrimana skladnist algoritmu hocha i ne ye tochnoyu prote dostatno dobre uzgodzhuyetsya z praktikoyu Vikonuyetsya taka teorema Nehaj N displaystyle N skladene chislo Todi isnuye taka stala C displaystyle C sho dlya bud yakogo dodatnogo chisla l displaystyle lambda jmovirnist podiyi sho polyagaye v tomu sho r metod Polarda ne znajde netrivialnogo dilnika N displaystyle N za chas C l N log N 2 displaystyle C sqrt lambda sqrt N log N 2 ne perevershuye velichini e l displaystyle e lambda Cya teorema viplivaye z paradoksu dniv narodzhennya Osoblivosti realizaciyiObsyag pam yati vikoristovuvanij algoritmom mozhna znachno zmenshiti int Rho Polard int N int x random 1 N 2 int y 1 int i 0 int stage 2 while N S D N abs x y 1 if i stage y x stage stage 2 x x x 1 mod N i i 1 return N S D N abs x y u comu varianti obchislennya potrebuye zberigati v pam yati vsogo tri zminni N displaystyle N x displaystyle x i y displaystyle y sho vigidno vidriznyaye metod v takij realizaciyi vid inshih metodiv faktorizaciyi chisel Rozparalelyuvannya algoritmu Algoritm Pollarda dozvolyaye rozparalelyuvannya z vikoristannyam bud yakogo standartu paralelnih obchislen napriklad OpenMP ta in Isnuye dekilka variantiv rozparalelyuvannya ale yih spilna ideya polyagaye v tomu sho kozhnij procesor vikonuye poslidovnij algoritm prichomu pochatkove chislo x 0 displaystyle x 0 ta abo polinom F x displaystyle F x mayut buti riznimi dlya kozhnogo procesora Ochikuyetsya sho na yakomus procesori pochatkovi parametri vipadkovo viyavlyatsya bilsh vdalimi i dilnik bude znajdeno shvidshe odnak cej vipadok nedeterminovanij imovirnisnij Priskorennya vid takoyi paralelnoyi realizaciyi znachno menshe linijnogo Pripustimo sho ye P displaystyle P odnakovih procesoriv Yaksho mi vikoristovuyemo P displaystyle P riznih poslidovnostej tobto riznih polinomiv F x displaystyle F x to jmovirnist togo sho pershi k displaystyle k chisel v cih poslidovnostyah budut riznimi za modulem p displaystyle p priblizno dorivnyuye exp k 2 P 2 p displaystyle exp k 2 P 2p Takim chinom priskorennya mozhna ociniti yak P 1 2 displaystyle P 1 2 Tobto zbilshennya shvidkosti vdvichi mozhna ochikuvati yaksho procesoriv bude vchetvero bilshe Richard Krandall pripustiv sho mozhna dosyagti priskorennya O P log P 2 displaystyle O P log P 2 odnak na 2000 j rik ce tverdzhennya ne bulo perevireno Div takozhMetod Monte KarloPrimitkiPershij opis algoritmu cherepahi ta zajcya z yavivsya v drugomu tomi Mistectva programuvannya Donalda Knuta Knuth Donald E 1969 The Art of Computer Programming vol II Seminumerical Algorithms Addison Wesley u vpravah 6 ta 7 stor 7 Na storinci 4 Knut pripisuye cej algoritm Flojdu ne posilayuchis na dzherela Hocha Flojd i opublikuvav 1967 roku stattyu Floyd R W 1967 Non deterministic Algorithms J ACM 14 4 636 644 doi 10 1145 321420 321422 odnak u nij vin opisav algoritmi poshuku prostih cikliv v oriyentovanomu grafi Brent 1980 An Improved Monte Carlo Factorization Algorithm Koshy 2007 Elementary Number Theory with Applications Childs 2009 471 473 Brent 1999 Some parallel algorithms for integer factorization Pollard 1975 A Monte Carlo method for factorization Ishmuhametov 2011 s 64 N Yu Zolotih Lekciyi po komp yuternij algebri Lekciya 11 r metod Pollarda 30 zhovtnya 2014 u Wayback Machine Ishmuhametov 2011 Metodi faktorizaciyi naturalnih chisel Navchalnij posibnik Brent 1980 s 176 184 Reisel 2012 Selected Areas in Cryptography Prime Numbers and Computer Methods for Factorization 2nd ed Cormen 2001 s 976 Introduction to Algorithms Section 31 9 Integer Factorization Pollard s rho heuristic Crandall 1999 Parallelization of Polldar rho factorization LiteraturaIshmuhametov Sh T Metodi faktorizaciyi naturalnih chisel Navchalnij posibnik Kazan Kazanskij Universitet 2011 S 61 64 Vasilenko O N Teoretiko chislovi algoritmi v kriptografiyi M MCNMO 2003 328 s ISBN 5 94057 103 4 Yu P Solovjov V A Sadovnichij E T Shavgulidze V V Byelokurov Eliptichni krivi ta suchasni algoritmi teoriyi chisel Moskva Izhevsk Institut komp yuternih doslidzhen 2003 Brent Richard P 1980 PDF BIT 20 176 184 doi 10 1007 BF01933190 arhiv originalu PDF za 24 veresnya 2009 procitovano 29 zhovtnya 2014 Brent R P Deyaki Paralelni algoritmi faktorizaciyi chisel 1999 S 7 DOI 10 1017 S0305004100049252 Childs Lindsay N Congruences Vvedennya u vishu algebru Concrete Introduction to Higher Algebra 3 USA Springer 2009 S 471 473 ISBN 978 0 387 74725 5 Cormen T H Leiserson C E Rivest R L Stein C Algoritmi pobudova j analiz Introduction to algorithms 2 USA MIT Press 2001 S 897 907 ISBN 9780262032933 Crandall R E Rozparalelyuvannya P algoritmu faktorizaciyi Polarda 1999 Koshy T Congruences Elementarna teoriya chisel ta yiyi dodatki Elementary Number Theory with Applications 2 USA Academic Press 2007 S 238 ISBN 9780123724878 Pollard J M 1975 PDF BIT Numerical Mathematics 15 3 331 334 arhiv originalu PDF za 21 sichnya 2022 procitovano 13 grudnya 2021 Pollard J M Metodi faktorizaciyi i perevirka prostoti Theorems on factorization and primality testing Mathematical Proceedings of the Cambridge Philosophical Society 1974 T 76 3 S 521 DOI 10 1017 S0305004100049252 Reisel H Prosti chisla ta komp yuterni metodi faktorizaciyi Prime Numbers and Computer Methods for Factorization 2 e USA Springer 2012 S 183 ISBN 978 0 8176 8297 2