Тест Люка — Лемера — ефективний тест простоти для чисел Мерсенна. Завдяки цьому тесту найбільшими відомими простими числами завжди були прості числа Мерсенна, причому навіть до появи комп'ютерів.
Історія
Тест був запропонований французьким математиком Люка 1878 року і доповнений американським математиком [en]1930 року. Отриманий тест носить ім'я двох вчених, які спільно відкрили його, навіть не зустрічаючись за життя. 1952 року Робінсон за підтримки Лемера провів обчислення на комп'ютері SWAC з використанням тесту Люка — Лемера, результатом якого стало відкриття простих чисел і . Пізніше того ж року були відкриті , і .
Тест
Тест Люка — Лемера базується на тому спостереженні, що простота числа Мерсенна тягне простоту числа , і в наступному твердженні:
Нехай — просте число, причому . визначимо послідовність таким чином: Тоді — просте тоді і тільки тоді, коли . |
Для встановлення простоти послідовність чисел обчислюється по модулю числа (тобто обчислюються не власне числа , довжина яких росте експоненціально, а остачі від ділення на , довжина яких обмежена p бітами). Останнє число в цій послідовності називається вирахуванням Люка — Лемера. Таким чином, число Мерсенна є простим тоді і тільки тоді, коли число просте, і вирахування Люка — Лемера дорівнює нулю.
Можливими значеннями є: 4, 10, 52, 724, 970, 10084, …
Обчислювальна складність
Обчислювальна складність тесту для числа дорівнює , оскільки в процесі тесту виконується піднесення до квадрату та вирахувань по модулю . Довжина становить біт, причому найпростіший алгоритм множення чисел має складність . Для прискорення тесту слід використовувати алгоритми швидкого множення великих цілих чисел, наприклад, алгоритм Шьонхаге — Штрассена. Складність тесту в такому випадку становитиме .
Приклади
Розглянемо виконання тесту для числа Мерсенна .
Отже, число — просте.
Доведення
Теорема: Нехай — просте число, причому . Визначимо послідовність таким чином:
Тоді — просте тоді і тільки тоді, коли .
Доведення теореми засновано на властивостях послідовностей Люка і :
Такі властивості доводяться по індукції:
Лема: Нехай — просте і , тоді справедливе наступне твердження. Якщо , то .
Доказ леми: Покладемо , . Використовуємо вище описані властивості, щоб отримати значення для і :
- , в той час як .
Тим же способом отримаємо:
- і
Інакше кажучи,
- і ,
звідки випливає твердження леми, якщо взяти .
Далі, розкривається вираз послідовностей за формулою біному Ньютона:
Тепер, якщо ми покладемо , де — просте число, більше 2, і врахуємо, що кратне за винятком тих випадків, коли і , ми отримаємо:
- , .
Якщо теорема Ферма стверджує, що . Тому , тобто . Якщо , то
тобто . У той же спосіб отримується результат, що , якщо . Отже доведено, що для будь-якого простого числа, існує ціле число таке, що .
Лема: Якщо — додатне ціле число, і — найменше число таке, що , то ми маємо:
- тоді і тільки тоді, коли кратне .
Доведення: Зауважимо, що послідовність збігається з послідовністю по модулю , де число взаємно просте з , так як: .
Доведення теореми: По індукції маємо
- .
Більш того, з слідує, що . Звідси слід, що і не мають загальних непарних дільників. Якщо , то для і можна записати:
Тепер, якщо , то повинно бути дільником числа , але не повинно ділити , тому . Доведемо, що . Нехай . Числа більше 3, так як непарне і виконується , — просте за умовою. Використовуючи раніше доведені леми, отримаємо , де
де . Звідси випливає, що кратне . Покладемо ; . Так як — парне, . Використовуємо раніше доведені факти і отримаємо ; отже і або . Зауважимо, що — ступінь двійки. Звідси випливає, що і . Якщо — складене, то має бути , де і — прості числа. Подальше розкладання на прості числа, якщо — непарне, неможливо, тому — просте.
Навпаки, припустимо, що — просте. Покажемо, що . Для цього достатньо показати, що , так як .
Так як — просте, то біноміальний коефіцієнт ділиться на крім тих випадків, коли чи . Отже:
- .
Тут , тому за малої теореми Ферма. Нарешті, використовуючи найпростіший випадок квадратичного закону взаємності, покажемо, що , так як і . Це значить, що , так що .
Псевдокод
Lucas–Lehmer(p) var s = 4 var M = 2p — 1 repeat p — 2 times: s = ((s × s) — 2) mod M if s = 0 return PRIME else return COMPOSITE
Модифікації
Для чисел виду , де існує [en], розроблена [en]. Можливо узагальнення тесту для чисел виду . Також існує більш загальний варіант — тест Люка, який застосовний для будь-якого натурального числа , якщо відоме розкладання на прості множники числа .
Застосування
Завдяки тесту Люка — Лемера прості числа Мерсенна утримують лідерство як найбільші відомі прості числа. Саме тест Люка — Лемера лежить в основі проекту розподілених обчислень GIMPS, що шукає нові прості числа Мерсенна.
Див. також
Примітки
- Paulo Ribenboim. The Little Book of Bigger Primes. — Springer. — 2004. — С. 78. — (2-ге видання) — .
- Eric Bach; Jeffrey Shallit. Algorithmic Number Theory, Vol. 1: Efficient Algorithms. — The MIT Press, 1996. — С. 275. — .
- Donald E. Knuth. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. — Addison-Wesley Professional, 1997. — С. 2. — (2-ге видання) — .
- H. C. Williams. A class of primality tests for trinomials which includes the Lucas-Lehmer test (англ.). Архів оригіналу за 23 грудня 2012. Процитовано 28 листопада 2012.
- The «Top Ten» Record Primes(англ.).
Література
- Weisstein, Eric W. Lucas-Lehmer Test(англ.) на сайті Wolfram MathWorld.
- А.Н.Рудаков. Числа Фібоначчі і простота числа 2127-1 // 4 (третя серія). — Математична просвіта, 2000.
- Donald E. Knuth. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. — Addison-Wesley Professional, 1997. — С. 389-394. — .
- Paulo Ribenboim. The Little Book of Bigger Primes. — Springer, 2004. — С. 75-80. — .
- Eric Bach; Jeffrey Shallit. Algorithmic Number Theory, Vol. 1: Efficient Algorithms. — The MIT Press, 1996. — С. 273-275. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Test Lyuka Lemera efektivnij test prostoti dlya chisel Mersenna Zavdyaki comu testu najbilshimi vidomimi prostimi chislami zavzhdi buli prosti chisla Mersenna prichomu navit do poyavi komp yuteriv IstoriyaTest buv zaproponovanij francuzkim matematikom Lyuka 1878 roku i dopovnenij amerikanskim matematikom en 1930 roku Otrimanij test nosit im ya dvoh vchenih yaki spilno vidkrili jogo navit ne zustrichayuchis za zhittya 1952 roku Robinson za pidtrimki Lemera proviv obchislennya na komp yuteri SWAC z vikoristannyam testu Lyuka Lemera rezultatom yakogo stalo vidkrittya prostih chisel M521 displaystyle M 521 i M607 displaystyle M 607 Piznishe togo zh roku buli vidkriti M1279 displaystyle M 1279 M2203 displaystyle M 2203 i M2281 displaystyle M 2281 TestTest Lyuka Lemera bazuyetsya na tomu sposterezhenni sho prostota chisla Mersenna Mq 2q 1 displaystyle M q 2 q 1 tyagne prostotu chisla q displaystyle q i v nastupnomu tverdzhenni Nehaj q displaystyle q proste chislo prichomu q 3 displaystyle q geqslant 3 viznachimo poslidovnist Ln displaystyle L n takim chinom L0 4 displaystyle L 0 4 Ln 1 Ln2 2 displaystyle L n 1 L n 2 2 Todi Mq displaystyle M q proste todi i tilki todi koli Lq 2 0 modMq displaystyle L q 2 equiv 0 pmod M q Dlya vstanovlennya prostoti Mp displaystyle M p poslidovnist chisel L0 L2 Lq 2 displaystyle L 0 L 2 ldots L q 2 obchislyuyetsya po modulyu chisla Mq displaystyle M q tobto obchislyuyutsya ne vlasne chisla Lk displaystyle L k dovzhina yakih roste eksponencialno a ostachi vid dilennya Lk displaystyle L k na Mq displaystyle M q dovzhina yakih obmezhena p bitami Ostannye chislo v cij poslidovnosti Lq 2modMq displaystyle L q 2 bmod M q nazivayetsya virahuvannyam Lyuka Lemera Takim chinom chislo Mersenna Mq displaystyle M q ye prostim todi i tilki todi koli chislo q displaystyle q proste i virahuvannya Lyuka Lemera dorivnyuye nulyu Mozhlivimi znachennyami L0 displaystyle L 0 ye 4 10 52 724 970 10084 Obchislyuvalna skladnistObchislyuvalna skladnist testu dlya chisla Mq 2q 1 displaystyle M q 2 q 1 dorivnyuye O q3 displaystyle O q 3 oskilki v procesi testu vikonuyetsya O q displaystyle O q pidnesennya do kvadratu ta virahuvan po modulyu Mq displaystyle M q Dovzhina Mq displaystyle M q stanovit q displaystyle q bit prichomu najprostishij algoritm mnozhennya chisel maye skladnist O q2 displaystyle O q 2 Dlya priskorennya testu slid vikoristovuvati algoritmi shvidkogo mnozhennya velikih cilih chisel napriklad algoritm Shonhage Shtrassena Skladnist testu v takomu vipadku stanovitime O q2log qlog log q displaystyle O q 2 log q log log q PrikladiRozglyanemo vikonannya testu dlya chisla Mersenna M13 8191 displaystyle M 13 8191 L0 4 displaystyle L 0 4 L1 42 2mod8191 14 displaystyle L 1 4 2 2 mod 8191 14 L2 142 2mod8191 194 displaystyle L 2 14 2 2 mod 8191 194 L3 1942 2mod8191 4870 displaystyle L 3 194 2 2 mod 8191 4870 L4 48702 2mod8191 3953 displaystyle L 4 4870 2 2 mod 8191 3953 L5 39532 2mod8191 5970 displaystyle L 5 3953 2 2 mod 8191 5970 L6 59702 2mod8191 1857 displaystyle L 6 5970 2 2 mod 8191 1857 L7 18572 2mod8191 36 displaystyle L 7 1857 2 2 mod 8191 36 L8 362 2mod8191 1294 displaystyle L 8 36 2 2 mod 8191 1294 L9 12942 2mod8191 3470 displaystyle L 9 1294 2 2 mod 8191 3470 L10 34702 2mod8191 128 displaystyle L 10 3470 2 2 mod 8191 128 L11 1282 2mod8191 0 displaystyle L 11 128 2 2 mod 8191 0 Otzhe chislo M13 8191 displaystyle M 13 8191 proste DovedennyaTeorema Nehaj q displaystyle q proste chislo prichomu q 3 displaystyle q geqslant 3 Viznachimo poslidovnist Ln displaystyle L n takim chinom L0 4 displaystyle L 0 4 Ln 1 Ln2 2 mod 2q 1 displaystyle L n 1 L n 2 2 mod 2 q 1 Todi 2q 1 displaystyle 2 q 1 proste todi i tilki todi koli Lq 2 0 displaystyle L q 2 0 Dovedennya teoremi zasnovano na vlastivostyah poslidovnostej Lyuka Un Un 4 1 displaystyle U n U n 4 1 i Vn Vn 4 1 displaystyle V n V n 4 1 U0 0 U1 1 Un 1 4Un Un 1 displaystyle U 0 0 U 1 1 U n 1 4U n U n 1 V0 2 V1 4 Vn 1 4Vn Vn 1 displaystyle V 0 2 V 1 4 V n 1 4V n V n 1 Taki vlastivosti dovodyatsya po indukciyi Vn Un 1 Un 1 displaystyle V n U n 1 U n 1 Un 112 2 3 n 2 3 n displaystyle U n tfrac 1 sqrt 12 2 sqrt 3 n 2 sqrt 3 n Vn 2 3 n 2 3 n displaystyle V n 2 sqrt 3 n 2 sqrt 3 n Um n UmUn 1 Um 1Un displaystyle U m n U m U n 1 U m 1 U n Lema Nehaj p displaystyle p proste i e 1 displaystyle e geqslant 1 todi spravedlive nastupne tverdzhennya Yaksho Un 0 modpe displaystyle U n equiv 0 pmod p e to Unp 0 modpe 1 displaystyle U np equiv 0 pmod p e 1 Dokaz lemi Poklademo Un bpe displaystyle U n bp e Un 1 a displaystyle U n 1 a Vikoristovuyemo vishe opisani vlastivosti shob otrimati znachennya dlya U2n displaystyle U 2n i U2n 1 displaystyle U 2n 1 U2n bpe 2a 4bpe 2aUn modpe 1 displaystyle U 2n bp e 2a 4bp e equiv 2aU n pmod p e 1 v toj chas yak U2n 1 Un 12 Un2 a2 modpe 1 displaystyle U 2n 1 U n 1 2 U n 2 equiv a 2 pmod p e 1 Tim zhe sposobom otrimayemo U3n U2n 1Un U2nUn 1 3a2 Un modpe 1 displaystyle U 3n U 2n 1 U n U 2n U n 1 equiv 3a 2 U n pmod p e 1 i U3n 1 U2n 1Un 1 U2nUn a3 modpe 1 displaystyle U 3n 1 U 2n 1 U n 1 U 2n U n equiv a 3 pmod p e 1 Inakshe kazhuchi Ukn kak 1 Un modpe 1 displaystyle U kn equiv ka k 1 U n pmod p e 1 i Ukn 1 ak modpe 1 displaystyle U kn 1 equiv a k pmod p e 1 zvidki viplivaye tverdzhennya lemi yaksho vzyati k p displaystyle k p Dali rozkrivayetsya viraz poslidovnostej za formuloyu binomu Nyutona Un k n2k 1 2n 2k 13k displaystyle U n sum k binom n 2k 1 2 n 2k 1 3 k Vn k n2k 2n 2k 13k displaystyle V n sum k binom n 2k 2 n 2k 1 3 k Teper yaksho mi poklademo n p displaystyle n p de p displaystyle p proste chislo bilshe 2 i vrahuyemo sho nk displaystyle tbinom n k kratne p displaystyle p za vinyatkom tih vipadkiv koli k 0 displaystyle k 0 i k n displaystyle k n mi otrimayemo Up 3 p 1 2 modp displaystyle U p equiv 3 p 1 2 pmod p Vp 4 modp displaystyle V p equiv 4 pmod p Yaksho p 3 displaystyle p neq 3 teorema Ferma stverdzhuye sho 3p 1 1 modp displaystyle 3 p 1 equiv 1 pmod p Tomu 3 p 1 2 1 3 p 1 2 1 0 modp displaystyle 3 p 1 2 1 3 p 1 2 1 equiv 0 pmod p tobto 3 p 1 2 1 modp displaystyle 3 p 1 2 equiv pm 1 pmod p Yaksho Up 1 modp displaystyle U p equiv 1 pmod p to Up 1 4Up Up 1 4Up Vp Up 1 Up 1 modp displaystyle U p 1 4U p U p 1 4U p V p U p 1 equiv U p 1 pmod p tobto Up 1 0 modp displaystyle U p 1 0 pmod p U toj zhe sposib otrimuyetsya rezultat sho Up 1 0 modp displaystyle U p 1 0 pmod p yaksho Up 1 displaystyle U p 1 Otzhe dovedeno sho dlya bud yakogo prostogo chisla isnuye cile chislo e p 1 displaystyle mid varepsilon p mid leqslant 1 take sho Up e p 0 modp displaystyle U p varepsilon p 0 pmod p Lema Yaksho N displaystyle N dodatne cile chislo i m m N displaystyle m m N najmenshe chislo take sho Um N 0 modN displaystyle U m N equiv 0 pmod N to mi mayemo Un 0 modN displaystyle U n equiv 0 pmod N todi i tilki todi koli n displaystyle n kratne m N displaystyle m N Dovedennya Zauvazhimo sho poslidovnist Un Un 1 Un 2 displaystyle U n U n 1 U n 2 zbigayetsya z poslidovnistyu aU0 aU1 aU2 displaystyle aU 0 aU 1 aU 2 po modulyu M displaystyle M de chislo a Um 1modN displaystyle a U m 1 mod N vzayemno proste z N displaystyle N tak yak gcd Un Un 1 1 displaystyle gcd U n U n 1 1 Dovedennya teoremi Po indukciyi mayemo Ln V2nmod 2q 1 displaystyle L n V 2 n mod 2 q 1 Bilsh togo z 2Un 1 4Un Vn displaystyle 2U n 1 4U n V n sliduye sho gcd Un Vn 2 displaystyle gcd U n V n leqslant 2 Zvidsi slid sho Un displaystyle U n i Vn displaystyle V n ne mayut zagalnih neparnih dilnikiv Yaksho Lq 2 0 displaystyle L q 2 0 to dlya U2q 1 displaystyle U 2 q 1 i U2q 2 displaystyle U 2 q 2 mozhna zapisati U2q 1 U2q 2V2q 2 0 mod2q 1 displaystyle U 2 q 1 U 2 q 2 V 2 q 2 equiv 0 pmod 2 q 1 U2q 2 0 mod2q 1 displaystyle U 2 q 2 not equiv 0 pmod 2 q 1 Teper yaksho m m 2q 1 displaystyle m m 2 q 1 to m displaystyle m povinno buti dilnikom chisla 2q 2 displaystyle 2 q 2 ale ne povinno diliti 2q 2 displaystyle 2 q 2 tomu m 2q 1 displaystyle m 2 q 1 Dovedemo sho n 2q 1 displaystyle n 2 q 1 Nehaj n p11e prre displaystyle n p 1 1 e p r r e Chisla pj displaystyle p j bilshe 3 tak yak n displaystyle n neparne i vikonuyetsya n 2q 1 1 q 1 2 mod3 displaystyle n 2 q 1 equiv 1 q 1 2 pmod 3 q displaystyle q proste za umovoyu Vikoristovuyuchi ranishe dovedeni lemi otrimayemo Ut 0 mod2q 1 displaystyle U t equiv 0 pmod 2 q 1 de t lcm p1e1 1 p1 e1 prer 1 pr er displaystyle t mathrm lcm p 1 e 1 1 p 1 varepsilon 1 dots p r e r 1 p r varepsilon r de ej 1 displaystyle varepsilon j pm 1 Zvidsi viplivaye sho t displaystyle t kratne m 2q 1 displaystyle m 2 q 1 Poklademo n0 j 1rpjej 1 pj ej displaystyle n 0 prod j 1 r p j e j 1 p j varepsilon j n0 j 1rpjej 1 pj 1 5pj 6 5 rn displaystyle n 0 leqslant prod j 1 r p j e j 1 p j 1 5p j 6 5 r n Tak yak pj ej displaystyle p j varepsilon j parne t n0 2r 1 displaystyle t leqslant n 0 2 r 1 Vikoristovuyemo ranishe dovedeni fakti i otrimayemo m t 2 3 5 rm lt 4 3 5 rm lt 3m displaystyle m leqslant t leqslant 2 3 5 r m lt 4 3 5 r m lt 3m otzhe r 2 displaystyle r leqslant 2 i t m displaystyle t m abo t 2m displaystyle t 2m Zauvazhimo sho t displaystyle t stupin dvijki Zvidsi viplivaye sho e1 1 displaystyle e 1 1 i er 1 displaystyle e r 1 Yaksho n displaystyle n skladene to maye buti n 2q 1 2k 1 2l 1 displaystyle n 2 q 1 2 k 1 2 l 1 de 2k 1 displaystyle 2 k 1 i 2l 1 displaystyle 2 l 1 prosti chisla Podalshe rozkladannya na prosti chisla yaksho q displaystyle q neparne nemozhlivo tomu n displaystyle n proste Navpaki pripustimo sho n 2q 1 displaystyle n 2 q 1 proste Pokazhemo sho V2q 2 0 modn displaystyle V 2 q 2 equiv 0 pmod n Dlya cogo dostatno pokazati sho V2q 1 2 modn displaystyle V 2 q 1 equiv 2 pmod n tak yak V2q 1 V2q 2 2 2 displaystyle V 2 q 1 V 2 q 2 2 2 V2q 1 2 62 n 1 2 62 n 1 2 n k n 12k 2n 1 2k62k 2 1 n 2 k n 12k 3k displaystyle V 2 q 1 left frac sqrt 2 sqrt 6 2 right n 1 left frac sqrt 2 sqrt 6 2 right n 1 2 n sum k binom n 1 2k sqrt 2 n 1 2k sqrt 6 2k 2 1 n 2 sum k binom n 1 2k 3 k Tak yak n displaystyle n proste to binomialnij koeficiyent n 12k n2k n2k 1 displaystyle tbinom n 1 2k tbinom n 2k tbinom n 2k 1 dilitsya na n displaystyle n krim tih vipadkiv koli k 0 displaystyle k 0 chi k n 1 2 displaystyle k n 1 2 Otzhe 2 n 1 2V2q 1 1 3 n 1 2 modn displaystyle 2 n 1 2 V 2 q 1 equiv 1 3 n 1 2 pmod n Tut 2 2 q 1 2 2 modn displaystyle 2 equiv 2 q 1 2 2 pmod n tomu 2 n 1 2 2 q 1 2 n 1 1 modn displaystyle 2 n 1 2 equiv 2 q 1 2 n 1 equiv 1 pmod n za maloyi teoremi Ferma Nareshti vikoristovuyuchi najprostishij vipadok kvadratichnogo zakonu vzayemnosti pokazhemo sho 3 n 1 2 1 modn displaystyle 3 n 1 2 equiv 1 pmod n tak yak nmod3 1 displaystyle n mod 3 1 i nmod4 3 displaystyle n mod 4 3 Ce znachit sho V2q 1 2 displaystyle V 2 q 1 equiv 2 tak sho V2q 2 0 displaystyle V 2 q 2 equiv 0 PsevdokodLucas Lehmer p var s 4 var M 2p 1 repeat p 2 times s s s 2 mod M if s 0 return PRIME else return COMPOSITEModifikaciyiDlya chisel vidu k2n 1 displaystyle k2 n 1 de 2n gt k displaystyle 2 n gt k isnuye en rozroblena en Mozhlivo uzagalnennya testu dlya chisel vidu A22n B2n 1 displaystyle A2 2n B2 n 1 Takozh isnuye bilsh zagalnij variant test Lyuka yakij zastosovnij dlya bud yakogo naturalnogo chisla N displaystyle N yaksho vidome rozkladannya na prosti mnozhniki chisla N 1 displaystyle N 1 ZastosuvannyaZavdyaki testu Lyuka Lemera prosti chisla Mersenna utrimuyut liderstvo yak najbilshi vidomi prosti chisla Same test Lyuka Lemera lezhit v osnovi proektu rozpodilenih obchislen GIMPS sho shukaye novi prosti chisla Mersenna Div takozhTest prostoti Test prostoti Lyuka Chisla Mersenna en PrimitkiPaulo Ribenboim The Little Book of Bigger Primes Springer 2004 S 78 2 ge vidannya ISBN 978 0387201696 Eric Bach Jeffrey Shallit Algorithmic Number Theory Vol 1 Efficient Algorithms The MIT Press 1996 S 275 ISBN 978 0262024051 Donald E Knuth The Art of Computer Programming Volume 2 Seminumerical Algorithms Addison Wesley Professional 1997 S 2 2 ge vidannya ISBN 978 0201896848 H C Williams A class of primality tests for trinomials which includes the Lucas Lehmer test angl Arhiv originalu za 23 grudnya 2012 Procitovano 28 listopada 2012 The Top Ten Record Primes angl LiteraturaWeisstein Eric W Lucas Lehmer Test angl na sajti Wolfram MathWorld A N Rudakov Chisla Fibonachchi i prostota chisla 2127 1 4 tretya seriya Matematichna prosvita 2000 Donald E Knuth The Art of Computer Programming Volume 2 Seminumerical Algorithms Addison Wesley Professional 1997 S 389 394 ISBN 978 0201896848 Paulo Ribenboim The Little Book of Bigger Primes Springer 2004 S 75 80 ISBN 978 0387201696 Eric Bach Jeffrey Shallit Algorithmic Number Theory Vol 1 Efficient Algorithms The MIT Press 1996 S 273 275 ISBN 978 0262024051