Przedmowa


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:
  1. Wprowadzamy lub przedstawienie definicji interesujących nas liczb.
  2. Dowodzimy twierdzeń opisujących zbiór tych liczb.
  3. Na podstawie tych twierdzeń, opracowujemy algorytm znajdujący zdefiniowane liczby.
  4. Wprowadzamy definicję funkcji zliczającej te liczby i stawiamy tezę.
  5. Na podstawie algorytmu, wyprowadzamy wzór na tą funkcję.
  6. 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:
  1. Konstrukcje Przestrzeni.
  2. 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.