PRZEDMOWA
Anegdota
Wyprawę w świat
abstrakcji liczbowych, w świat zagadek i problemów matematycznych
oraz próby ich rozwiązania zacznijmy od krótkiej opowiastki o
początkach mojej przygody z matematyką. Otóż kiedy po raz pierwszy
zetknąłem się z tą dziedziną, tzn. z liczbami, nie miałem pojęcia,
czym ona jest, ale mimo to już od najmłodszych lat wiedziałem, jak
się ją uprawia. Co dziwne, nie stało się to w szkole na lekcjach
matematyki, podczas których byłem zainteresowany zupełnie innymi
rzeczami, tylko w domu, kiedy uczyłem się „swojej własnej”
matematyki. Oczywiście, wtedy nie wiedziałem, że to, co robię, jest
najczystszą matematyką, nie wiedziałem też tego, do jakich wniosków i
rezultatów mnie to doprowadzi. Działo się to podczas długich
wieczornych rozmów z moją mamą, którym towarzyszyło – jak ja to
nazywam – „liczenie lotka”. Z tym, że każde z nas
miało odmienną strategię liczenia i różne założenia. Nie wdając się w
szczegóły, można ująć to tak: horoskop kontra matematyka dyskretna.
Zamiast opierać swoje przewidywania wyników losowań na obecnym i
przeszłym układzie gwiazd, co do dziś jest dla mnie niezrozumiałe,
poszedłem w kierunku prawdopodobieństwa, wyliczając różne możliwości,
rysując wymyślne schematy i opracowując złożone i przedziwne taktyki
gry oraz wyprowadzając jakieś użyteczne wzory.
Niestety, kiedy
już oboje „wyliczyliśmy”, jakie liczby powinny wypaść w
kolejnym losowaniu, to właśnie obliczenia mojej mamy miały więcej
trafień, a ja nie mogłem pojąć, dlaczego tak się dzieje, skoro dobrze
przeprowadziłem swoje rachunki. Mama mawiała: „nie tędy droga”,
co miało taki skutek, że mnie wręcz na tę drogę pchało i motywowało
do dalszych, bardziej przemyślanych obliczeń, by udowodnić, że to
właśnie „tędy droga”. Z czasem jednak dotarło do mnie, że
bardziej interesujące od „lotka”, w którego zresztą nie
grałem (bądź sporadycznie prosiłem mamę, żeby mi wysłała kupon), jest
samo liczenie oraz rozwiązywanie zagadek czy łamigłówek, co stało się
moim hobby.
Pewnego dnia
zupełnie przez przypadek natknąłem się na dotychczas mi nieznany, ale
jakże wciągający algorytm znajdujący liczby pierwsze. Dowiedziałem
się wtedy, że nie jest znany wzór, za pomocą którego można odnajdywać
te liczby oraz że w tej dziedzinie jest wiele nierozwiązanych
zagadnień, z którymi ludzkość zmaga się od bardzo dawna. Nie potrzeba
było dużo czasu, żeby hobby zamieniło się w pasję, a ta –
podsycona fascynacją – przerodziła się w obsesję, polegającą
nie na chęci skonfrontowania siebie i swoich umiejętności z tymi
problemami, tylko na przekonaniu, że wszystkie potrzebne do ich
rozwiązania informacje są zawarte w tymże algorytmie. Dosłownie nie
mogłem uwierzyć w to, że jeśli chcę znaleźć liczby pierwsze nie
większe od danej liczby naturalnej, to znajdę je, stosując algorytm,
ale jeśli chcę znaleźć te liczby dla jakiejś większej liczby, to znów
muszę przeprowadzić postępowanie według tego algorytmu od nowa. I tak
w kółko. Tak samo nie mogę uwierzyć we wnioski, do jakich doszedłem,
prowadząc rozważania nad owym algorytmem.
Dziś, gdy
przygoda z liczbami dobiega końca lub – jak ja to widzę –
dopiero się zaczyna, nadszedł czas, by rozsądzić, która droga była
lepsza, właściwsza i prowadząca do lepszych osiągnięć: czy horoskop –
uprawiany po dziś dzień i przynoszący małe, rzadko większe dochody,
czy teorie: liczb, gier, prawdopodobieństwa itp. – uprawiane po
wsze czasy, nieprzynoszące żadnych dochodów, ale wyzwalające jakże
cenne umiejętności radzenia sobie z łatwymi, a czasami nawet
trudniejszymi matematycznymi problemami.
O zadaniach
Zaznaczmy, że
zadania czy też problemy do rozwiązania w dziedzinie, w której
będziemy się poruszać, są problemami otwartymi. Zapoznajmy też się z
kilkoma definicjami, przyjmując do wiadomości, że poziom wiedzy
matematycznej wymagany od czytelnika niniejszej książki jest bardzo
elementarny – przynajmniej na początku.
Definicja
liczby naturalnej
|
Liczbę 1 i n
liczby otrzymane przez dodawanie do niej jedności nazywamy
liczbami naturalnymi.
|
Są to liczby: 1, 1+1, 1+1+1, 1+1+1+1, … Zbiór liczb naturalnych oznaczamy przez N, tzn, N = {1, 2, 3, …}.
Definicja
liczby pierwszej
|
Liczbę
pierwszą n nazywamy liczbę naturalną mającą dokładnie dwa
różne dzielniki naturalne: 1 i n.
|
Z definicji tej wynika, że liczba 1 nie jest liczba pierwszą, a najmniejszą taka jest liczba 2. Zbiór liczb pierwszych oznaczamy przez P, tzn, P = {p1, p2, p3, …}.
Definicja
liczby złożonej
|
Liczbę
złożoną z nazywamy liczbę naturalną >1 niebędącą liczbą
pierwszą.
|
Lub inaczej: to liczby, które mają więcej niż dwa różne dzielniki naturalne. Zbiór liczb złożonych oznaczamy przez Z, tzn. Z, Z = {z1, z2, z3, …}. Zbiór liczb naturalnych można opisać jako suma zbiorów: N = Z ∪ P ∪ {1}. Wiemy, że zarówno liczb pierwszych jak i złożonych jest nieskończenie wiele. Nasze rozważania będą się opierać na spostrzeżeniu, że jeżeli liczba naturalna n > 1 należy do zbioru Z, to nie należy do P oraz odwrotnie: jeżeli liczba naturalna n > 1 należy do P, to nie należy do Z, a stąd płynie szereg różnych wniosków, którymi się również zajmiemy.
Należy dodać, i
to z całą stanowczością, że liczby pierwsze, choć są czysto
abstrakcyjne, odgrywają w naszym życiu codziennym bardzo ważną rolę.
Nie zawsze zdajemy sobie z tego sprawę, ale to przy użyciu liczb
pierwszych zabezpieczane są w pewien sposób przeróżne informacje.
Kiedy się logujemy, używając do tego hasła, gdy płacimy kartą
kredytową czy debetową w sklepie lub robimy zakupy on‐line i
dokonujemy płatności itd., to za każdym razem mamy do czynienia z
jakąś dużą liczbą pierwszą, za pomocą której informacje, czyli hasła,
numery kont itp., są szyfrowane. Bezpieczeństwo, jak pisze Gómez
(Gómez 2012), polega na tym, że nie jest nam znany łatwy sposób
rozłożenia danej liczby naturalnej na czynniki pierwsze, przez co
zadanie to jest trudne i pracochłonne.
Problemami
związanymi z liczbami pierwszymi ludzkość zajmuje się od
starożytności. Do najstarszych i najbardziej znanych zagadnień
należą: hipoteza liczb pierwszych bliźniaczych,
postawiona przez Euklidesa ok. 300 roku p.n.e., która głosi, że
istnieje nieskończenie wiele liczb pierwszych p
takich, że p +
2 również jest pierwsza, np, pary liczb 5 i 7, 11 i 13. Hpoteza
Goldbacha postawiona w 1742
roku, mówiąca, że każda liczba parzysta większa od 2 może być
przedstawiona w postaci sumy dwóch liczb pierwszych, np, 4 = 2+2, 8 =
5+3. Czy jest nieskończenie wiele liczb pierwszych p
takich, że 2p+1
również jest pierwsza. Np, liczba 5 ma tą własność, że 2*5 +1 = 11
też jest pierwsza. Liczby takie nazywamy liczbami
pierwszymi Sophie Germain.
Zagadnienie to zostało postawione ok. roku 1800. Do najtrudniejszych
kwestii w tej dziedzinie należy prawdopodobnie pytanie, czy istnieje
wzór na kolejne liczby pierwsze? Czyli czy istnieje funkcja
przekształcająca liczbę naturalną i
w liczbę pierwszą pi,
tzn. funkcja f(i)
= pi
taką, że f(1)
= p1
= 2, f(2)
= p2
= 3, f(3)
= p3
= 5. A także czy istnieje funkcja „odwrotna”, która
odpowiada na pytanie, ile jest liczb pierwszych w przedziale od 1 do
n?
Funkcję te oznaczamy przez π(n), a ma ona tę własność, że π(2) = 1,
π(3) = 2, π(5) = 3, itd. Hipoteza Riemanna sformułowana w 1859
roku związana jest właśnie z tą funkcją. Czy istnieje jakiś sposób,
by rozwiązać te zadania, chociażby częściowo?
Gruntowna analiza
algorytmu znajdującego liczby pierwsze w
przedziale od 1 do n,
ujawnia nam sekrety skrywane przez dwadzieścia trzy wieki.
Dowiedz się, jak na jego podstawie wyprowadzić
sposób na
przeliczenie liczb pierwszych,
zapisując go w postaci wzoru.
Naucz się go modyfikować tak, by znaleźć dowolne liczby pierwsze oraz
wykorzystywać do rozwiązywania zagadnień związanych z tymi
liczbami. Rozwiązanie danego problemu można podzielić na etapy:
- Wprowadzamy lub przedstawienie definicji interesujących nas liczb.
- Dowodzimy twierdzeń opisujących zbiór tych liczb.
- Na podstawie tych twierdzeń, opracowujemy algorytm znajdujący zdefiniowane liczby.
- Wprowadzamy definicję funkcji zliczającej te liczby i stawiamy tezę.
- Na podstawie algorytmu, wyprowadzamy wzór na tą funkcję.
- Analizujemy wzór i potwierdzamy lub obalamy tezę.
Dla liczb
pierwszych (pkt 1) proces ten jest częściowo rozwiązany, gdyż znamy
już przepis znajdujący te liczby (pkt 3). Na jego podstawie
wyprowadzamy funkcję, której zbiorem wartości jest zbiór liczb
pierwszych (pkt 2). Zdefiniowana jest też funkcja zliczająca te
liczby (pkt 4). Teraz musimy udowodnić tezę, że funkcja ta jest
rosnąca (o czym już wiemy, gdyż liczb pierwszych jest nieskończenie
wiele, co możemy udowodnić w inny sposób, podany w punktach 5 i 6).
Dlatego w przypadku liczb pierwszych najpierw realizujemy pkt 3, a
potem pkt 2. Natomiast w przypadku liczb pierwszych bliźniaczych
najpierw wyprowadzamy funkcję, której zbiorem wartości jest zbiór
tych liczb, a dopiero potem na podstawie tej funkcji definiujemy
algorytm znajdujący omawiane liczby. Ostatnim etapem jest
zdefiniowanie funkcji zliczającej te liczby, postawienie tezy, jaką
chcemy udowodnić, a następnie wyprowadzenie wzoru opisującego tę
funkcję i potwierdzenie lub obalenie tezy.
O książce
Niniejsze
opracowanie, stanowiące wyzwolenie z sideł obsesji zrodzonej z pasji,
przyjęło formę publikacji popularnonaukowej i ma charakter
informacyjny. Dołożyłem wszelkich starań, by zawarte w niej
informacje pokrywały się z prawdą, żeby przeprowadzone rozumowanie
było przede wszystkim poprawne i możliwe do odtworzenia, żeby treść
była zrozumiała. Swoją pracę kieruję głównie do ludzi pasjonujących
się matematyką, do tych, którzy zajmują się nią amatorsko, do tych,
którzy ją uprawiają lub mają zamiar się nią zajmować, a także do
zawodowców i ekspertów.
W prezentowanej
pracy poświęconej liczbom pierwszym wyprowadzimy pewną teorię, która
zbliży nas do odpowiedzi na kilka pytań oraz pomoże rozwiązać jedno z
najstarszych zadań bez wychodzenia przy tym poza teorię liczb.
Opracowanie składa się z dwóch etapów:
- Konstrukcje Przestrzeni.
- Funkcja wiodąca.
W etapie I
zajmiemy się jednym ze sposobów na znajdowanie liczb pierwszych
zdefiniowanych w postaci wspomnianego algorytmu oraz poddamy ten
przepis dokładnej analizie, skąd wywnioskujemy kolejne jego
modyfikacje, którymi sukcesywnie będziemy zajmować się w kolejnych
rozdziałach. Zdefiniujemy ogólny sposób przeszukiwania dowolnych
podzbiorów zbioru liczb naturalnych pozwalający na znajdowanie liczb
pierwszych. Następnie na podstawie tego przepisu zbliżymy się do
rozwiązania kilku zagadnień, udowadniając pomocne temu twierdzenia.
W etapie II na
podstawie zgromadzonej wiedzy i umiejętności wyprowadzimy wzór na
liczbę liczb pierwszych nie większych od danej liczby
naturalnej. Będzie to kolejna kluczowa umiejętność, którą
wykorzystamy m.in. przy zmaganiu się z hipotezą Euklidesa znaną jako
hipoteza liczb pierwszych bliźniaczych, przy czym na wstępie
zostanie krok po kroku przedstawione całe rozumowanie. Przy
opracowaniu książki, przy formułowaniu twierdzeń, definicji i
algorytmów, przy wymyślaniu różnych symboli matematycznych oraz –
co najistotniejsze – podczas nauki przeprowadzania dowodów
matematycznych korzystałem głównie z następujących opracowań: R.
Courant, H. Robbins, Co to jest matematyka?, W. Sierpiński,
Wstęp do teorii liczb, H. Rasiowa, Wstęp do matematyki
współczesnej, J. Grębosz, Symfonia C++, P. Wróblewski,
Algorytmy, struktury danych i techniki programowania. Cennym
źródłem były również kursy programowania, których autorem jest
Mirosław Zelent. Zamieszczone biogramy pochodzą z Wikipedii.
Podziękowania należą się przede wszystkim mojej żonie, która mnie
zainspirowała i zmotywowała, bym w końcu napisał tę książkę i ją
opublikował. Jest to jeden z kilku powodów, dla których książkę tę
dedykuję dwóm jakże ważnym osobom, które odegrały istotne role w moim
życiu – mojej mamie i mojej żonie. Natomiast przez wiele
długich lat zastanawiania się nad liczbami pierwszymi gdzieś między
moimi myślami a snem krążyła, prowadziła mnie, wskazywała kierunek,
kazała wierzyć i tak po prostu była obecna myśl starożytnego
filozofa, który pozostawił nam m.in. rzeczony algorytm znajdujący
liczby pierwsze. Mowa rzecz jasna o Eratostenesie –
patronie mojej pracy.