Przejdź do treści

Twierdzenie Wilsona

Twierdzenie Wilsona

Liczba naturalna p>1p > 1 jest pierwsza wtedy i tylko wtedy, gdy

(p1)!1(modp),(p-1)! \equiv -1 \pmod{p},

równoważnie: gdy pp dzieli liczbę (p1)!+1(p-1)! + 1.

Co mówi twierdzenie

Silnia (p1)!=123(p1)(p-1)! = 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) to iloczyn wszystkich liczb mniejszych od pp. Twierdzenie Wilsona mówi, że reszta z dzielenia tego iloczynu przez pp rozstrzyga o pierwszości: dla liczb pierwszych wynosi zawsze p1p - 1 (czyli 1-1), a dla złożonych - nigdy.

To rzadka sytuacja. Większość kryteriów działa tylko w jedną stronę - jak małe twierdzenie Fermata, które dają się oszukać liczbom Carmichaela. Twierdzenie Wilsona jest równoważnością: nie ma liczb, które by je zwiodły.

Przykłady na liczbach

Dla p=5p = 5:

4!=24=551241(mod5).4! = 24 = 5 \cdot 5 - 1 \quad\Longrightarrow\quad 24 \equiv -1 \pmod 5.

Dla p=7p = 7:

6!=720=710317201(mod7).6! = 720 = 7 \cdot 103 - 1 \quad\Longrightarrow\quad 720 \equiv -1 \pmod 7.

Dla p=11p = 11:

10!=3628800=11329891110!1(mod11).10! = 3\,628\,800 = 11 \cdot 329\,891 - 1 \quad\Longrightarrow\quad 10! \equiv -1 \pmod{11}.

A dla liczby złożonej n=9n = 9:

8!=40320=944808!0(mod9),8! = 40\,320 = 9 \cdot 4480 \quad\Longrightarrow\quad 8! \equiv 0 \pmod 9,

czyli nie 1-1 - dokładnie tak, jak zapowiada twierdzenie.

Dowód

Pokaż dowódUkryj dowód

Dowodzimy implikacji „jeśli pp jest pierwsza, to (p1)!1(p-1)! \equiv -1”. Dla p=2p = 2 sprawdzamy wprost: 1!=11(mod2)1! = 1 \equiv -1 \pmod 2. Niech dalej p3p \geq 3.

Krok 1. Każda liczba ma odwrotność. Dla pp pierwszej i a{1,2,,p1}a \in \{1, 2, \ldots, p-1\} istnieje dokładnie jedna liczba a1a^{-1} z tego samego zbioru, dla której

aa11(modp).a \cdot a^{-1} \equiv 1 \pmod p.

Wynika to stąd, że NWD(a,p)=1\mathrm{NWD}(a, p) = 1, więc równanie ax1ax \equiv 1 ma rozwiązanie (daje je algorytm Euklidesa).

Krok 2. Kto jest swoją własną odwrotnością. Szukamy aa spełniających aa1a \equiv a^{-1}, czyli

a21(modp)(a1)(a+1)0(modp).a^2 \equiv 1 \pmod p \quad\Longleftrightarrow\quad (a-1)(a+1) \equiv 0 \pmod p.

Liczba pierwsza dzieląca iloczyn musi dzielić któryś czynnik, więc a1a \equiv 1 albo a1a \equiv -1. W naszym zbiorze są to dokładnie dwie liczby: 11 oraz p1p - 1.

Krok 3. Resztę parujemy. Pozostałe p3p - 3 liczby dzielą się na pary {a,a1}\{a, a^{-1}\} o iloczynie przystającym do 11. Par jest p32\tfrac{p-3}{2}, a ich łączny iloczyn to 11.

Krok 4. Mnożymy wszystko.

(p1)!11(p1)1(modp).(p-1)! \equiv 1 \cdot 1 \cdot (p-1) \equiv -1 \pmod p. \qquad \blacksquare

Przykład parowania dla p=11p = 11. Pary to (2,6)(2,6), (3,4)(3,4), (5,9)(5,9), (7,8)(7,8) - bo 26=1212 \cdot 6 = 12 \equiv 1, 34=1213 \cdot 4 = 12 \equiv 1, 59=4515 \cdot 9 = 45 \equiv 1 oraz 78=561(mod11)7 \cdot 8 = 56 \equiv 1 \pmod{11}. Samotne zostają 11 i 1010, a 10110 \equiv -1.

Twierdzenie odwrotne - też prawdziwe

Trzeba jeszcze pokazać, że dla liczby złożonej kongruencja nie zachodzi. Niech n>4n > 4 będzie złożona.

Przypadek 1: n=abn = ab dla pewnych 1<a<b<n1 < a < b < n. Oba czynniki występują wśród 1,2,,n11, 2, \ldots, n-1, więc ich iloczyn nn dzieli (n1)!(n-1)!:

(n1)!0(modn).(n-1)! \equiv 0 \pmod n.

Przypadek 2: n=p2n = p^2 dla liczby pierwszej p3p \geq 3. W iloczynie (n1)!(n-1)! występują wtedy obie liczby pp oraz 2p2p (bo 2p<p22p < p^2 dla p3p \geq 3), a ich iloczyn 2p22p^2 dzieli się przez n=p2n = p^2. Znowu (n1)!0(n-1)! \equiv 0.

Jedyny wyjątek: n=4n = 4. Tutaj 3!=62(mod4)3! = 6 \equiv 2 \pmod 4 - ani 1-1, ani 00. Dlatego w twierdzeniu odwrotnym zakłada się n>4n > 4.

Twierdzenie Wilsona jest więc pełnoprawnym kryterium pierwszości: reszta 1-1 oznacza liczbę pierwszą, każda inna - złożoną.

Dlaczego nie używa się go jako testu pierwszości

Skoro kryterium jest bezbłędne, dlaczego programy sprawdzające pierwszość go nie stosują? Bo policzenie (n1)!modn(n-1)! \bmod n wymaga około nn mnożeń. Dla liczby 300300-cyfrowej, jakich używa RSA, byłoby to około 1030010^{300} operacji - nieporównanie więcej, niż zdąży wykonać jakikolwiek komputer.

Dla porównania: naiwne dzielenie próbne potrzebuje około n\sqrt{n} operacji, a test Millera-Rabina - kilkudziesięciu potęgowań modularnych. Twierdzenie Wilsona jest więc teoretycznie idealne i praktycznie bezużyteczne. To dobra lekcja o różnicy między tym, co rozstrzygalne, a tym, co obliczalne w rozsądnym czasie.

Gdzie się przydaje

Kto i kiedy

Twierdzenie znał już około 1000 roku arabski uczony Ibn al-Hajsam (Alhazen). Nazwa pochodzi jednak od Johna Wilsona, angielskiego matematyka i późniejszego sędziego, który sformułował je około 1770 roku - bez dowodu.

Opublikował je Edward Waring, dodając, że dowód będzie trudny, bo brakuje dobrej notacji dla liczb pierwszych. Skomentował to Carl Friedrich Gauss, któremu przypisuje się uwagę, że potrzeba tu „nie notacji, lecz metod” - i podanie dowodu od ręki. Pierwszy opublikowany dowód pochodzi od Josepha Lagrange’a (1771).

Najczęstsze pytania

Czy twierdzenie działa w obie strony? Tak - i to je wyróżnia. Reszta 1-1 z dzielenia (n1)!(n-1)! przez nn zachodzi dokładnie dla liczb pierwszych.

Dlaczego n=4n = 4 jest wyjątkiem? Bo 4=224 = 2 \cdot 2, a w iloczynie 3!=1233! = 1 \cdot 2 \cdot 3 dwójka występuje tylko raz - brakuje drugiego czynnika, który dopełniłby 44. Dla większych kwadratów liczb pierwszych problem znika, bo 2p2p mieści się poniżej p2p^2.

Czym różni się od małego twierdzenia Fermata? Twierdzenie Fermata daje warunek konieczny pierwszości (i dają się je oszukać liczbom Carmichaela), a twierdzenie Wilsona - warunek równoważny. Za to Fermata liczy się szybko, a Wilsona bardzo wolno.

Czy istnieje szybszy sposób policzenia (p1)!modp(p-1)! \bmod p? Nie jest znany żaden istotnie szybszy niż wymnożenie po kolei. Gdyby powstał, twierdzenie Wilsona stałoby się praktycznym testem pierwszości.

Co to są liczby pierwsze Wilsona? Liczby pierwsze pp, dla których p2p^2 dzieli (p1)!+1(p-1)! + 1 (czyli warunek zachodzi „mocniej”). Znamy tylko trzy: 55, 1313 oraz 563563 - i nie wiadomo, czy jest ich nieskończenie wiele.

Podsumowanie