Przeskocz do treści

Delta mi!

Mała Delta

Obsesja dużych liczb

Karol Gryszka

o artykule ...

  • Publikacja w Delcie: czerwiec 2017
  • Publikacja elektroniczna: 31 maja 2017
  • Autor: Karol Gryszka
    Afiliacja: doktorant, Instytut Matematyki, Uniwersytet Jagielloński
  • Wersja do druku [application/pdf]: (134 KB)
obrazek

Kiedy miałem kilka, kilkanaście lat, wraz ze starszym bratem często graliśmy w grę. Należało w swojej kolejce podać liczbę większą od wskazanej przez poprzednika. Przegrywał oczywiście ten, kto nie był w stanie podać liczby większej. Czasami ponosiła nas fantazja i mówiliśmy "nieskończoność" albo "nieskończoność plus nieskończoność". Dziś już wiem, że nieskończoność liczbą nie jest, a działania na nieskończonościach są bardziej wyrafinowane, niż podejrzewałem. Gdyby i Tobie, drogi Czytelniku, przyszło kiedyś wymienić (albo usłyszeć) jakąś dużą liczbę, możesz sięgnąć do poniższej listy. Nie są to bowiem byle jakie liczby...

|Y 40 Choć znamy wiele miliardów cyfr rozwinięcia dziesiętnego liczby π , to pierwsze 40 wystarcza, aby zmierzyć rozmiary znanego nam Wszechświata z dokładnością do rozmiaru atomu wodoru - najmniejszego atomu występującego w przyrodzie. Dokładność jest więc iście imponująca!

π = 3,1415926535897932384626433832795028841971 ...

|Y 370 - istnieje co najmniej tyle różnych metod dowodzenia Twierdzenia Pitagorasa. Jest to rekordzista dowodowy wśród twierdzeń matematycznych.

|Y 7400000000 - tylu jest w przybliżeniu mieszkańców planety Ziemia. Dokładna liczba nie może być podana, gdyż, po pierwsze, nie jest znana, a po drugie, ulega częstej zmianie (statystycznie kilka razy na sekundę). Według szacunków ONZ liczba ta do końca wieku wzrośnie do około 11 miliardów.

 9 |Y 106000000000 = 106 10 - szacunkowa liczba wszystkich ludzi, jacy kiedykolwiek żyli na Ziemi. Zaczynamy nasze obliczenia dziesiątki tysięcy lat wstecz i uwzględniamy wszystkie osoby zmarłe aż do dnia dzisiejszego - oczywiście nie zapominamy o ponad siedmiu miliardach żyjących obecnie. Zauważmy, że aktualnie żyje aż 7% wszystkich osób, jakie kiedykolwiek się urodziły.

|Y 219902325555200 bajtów (około 200 terabajtów) - takiej mniej więcej ilości danych użyto do rozstrzygnięcia hipotezy dwukolorowalności trójek pitagorejskich. Zajęło to w sumie 35 000 godzin pracy komputerów - na szczęście pracowało nad tym wiele komputerów równocześnie. Treść problemu jest następująca: czy jest możliwe pokolorowanie każdej liczby naturalnej na czerwono lub niebiesko w taki sposób, by żadna trójka |a,b,c, spełniająca równanie a2 + b2 = c2, nie była jednokolorowa. Na przykład, jeżeli 5 i 12 są niebieskie, to 13 musi być czerwone. Hipoteza ta jest fałszywa, daje się we wskazany sposób pokolorować liczby naturalne od 1 do 7824 (nawet na parę sposobów), ale gdy dołączymy liczbę 7825, odpowiednie kolorowanie nie istnieje co sumiennie sprawdziły komputery.

|Y 43252003274489856000 (około 43 tryliony lub |43⋅1018 ) - to wszystkie możliwe konfiguracje elementów na kostce Rubika. Na całym świecie oryginalną kostkę oraz jej warianty sprzedano w kilkuset milionach egzemplarzy, co czyni ją najpopularniejszą zabawką w historii.

Jak wyznaczyć liczbę konfiguracji? Każdy róg (element trójkolorowy) może być ustawiony w jednym z ośmiu miejsc i w jednej z trzech orientacji, co daje łącznie 8!⋅38 możliwości. Każda krawędź (element dwukolorowy) może być ustawiona w jednym z dwunastu miejsc i w jednej z dwóch orientacji - łącznie 12!⋅212 ustawień. Każdy środek (element jednokolorowy) ma stałe położenie względem ustalonej orientacji, wobec tego jest tylko jeden istotny sposób na ich ustawienie. Ostatecznie otrzymujemy liczbę  12 8 8!⋅12!⋅2 ⋅3 . Ale nie jest to poprawna odpowiedź. Istnieją ograniczenia narzucane przez mechanizmy, które redukują liczbę dopuszczalnych możliwości.

Ostateczna liczba zmniejsza się dwunastokrotnie, a 8!⋅11!⋅212⋅38 to właśnie 43 252 003 274 489 856 000.

|Y 808017424794512875886459904961710757005754368000000000 (około 808 oktyliardów lub 808 ⋅1051 ). W XX wieku ważnym zagadnieniem w matematyce (dokładniej teorii grup) była kwestia opisania, klasyfikacji pewnych obiektów (tak zwanych skończonych grup prostych, cokolwiek to oznacza).

Pełna klasyfikacja została osiągnięta nakładem pracy wielu matematyków oraz ponad dziesięciu tysięcy stron publikacji. Jej efektem było wyróżnienie "cegiełek", elementów, z których można zbudować wszystkie obiekty klasyfikowane. Okazało się również, że istnieje największa taka cegiełka - grupa mająca tyle elementów, ile wynosi liczba otwierająca poprzedni akapit. Grupa ta nazywa się po angielsku Monster group, co możemy dość swobodnie przetłumaczyć na grupę potworną (żartobliwie i pieszczotliwie nazywaną również potworkiem).

 80 |Y 10 (100 tridecylionów). Szacowana liczba atomów w obserwowalnym Wszechświecie. Nie jesteśmy w stanie dokładnie ich policzyć, bazujemy jedynie na średniej gęstości materii w stosunku do znanych rozmiarów Wszechświata i na tej podstawie wyznaczamy wspomnianą liczbę. Jak ogromna jest to liczba? Przypuśćmy, że atomy ustawiliśmy w linii prostej. Każdy z nich ma średnicę około jednego nanometra (czyli 10−9 metra). Wszystkie utworzą linię długości około 1068 kilometrów czyli 1055 lat świetlnych.

|Y 10100 (10 seksdecyliardów lub googol) razem z |10googol, czyli googolplexem zdobyły popularność w różnych teleturniejach. W brytyjskim wydaniu "Milionerów" w pytaniu za milion funtów padło: Jak jest nazywana liczba 1 ze stoma zerami?

|Y 274207281 1 oznaczana także jako 74207281. M Jest największą znaną liczbą pierwszą, składa się z 22338618 cyfr. Gdybyśmy wydrukowali tę liczbę na papierze, mieszcząc 50 linii na stronie i 100 cyfr w każdej linii, zadrukowalibyśmy 4 468 stron. Taki plik kartek miałby około pół metra grubości i ważył kilka kilogramów. Papierowa wersja została zaprezentowana przez Matta Parkera na kanale YouTube "Numberphile".

|Y Mega i Liczba Mosera Wprowadzimy notację, pochodząca od Hugona Steinhausa, rozszerzoną później przez Leo Mosera.

obrazek
obrazek

Liczba n w kwadracie oznacza liczbę |n w n zagnieżdżonych trójkątach (w wieży potęgowej jest 2n takich samych liczb). Podobnie w dalszej części mamy n wzajemnie zagnieżdżonych kwadratów. Ogólnie można zdefiniować liczbę n wpisaną w wielokąt o k bokach jako liczbę |n wpisaną w n zagnieżdżonych wielokątach o |k− 1 bokach.

Steinhaus upodobał sobie szczególnie: mega - dwójka w pięciokącie - oraz megiston - dziesiątka w pięciokącie. Te dwie liczby czasami zamiast w pięciokącie zapisuje się w okręgu.

Liczba Mosera. to 2 w wielokącie, którego liczba boków jest równa liczbie mega (wielokąt taki nazywamy megagonem). Żeby móc porównać te liczby z dotychczasowymi, podamy oszacowanie (choćby grube). Jeżeli |a b oznacza  a:::a a , gdzie wieża potęgowa liczb |a zawiera b liczb, to

10 257 < mega < 10 258.

|Y Liczba Grahama. Rozszerzamy notację strzałkową, będziemy pisali

n= ... , n

gdzie

 ⎧⎪⎪ab, dla n = 0, ⎪⎪⎪⎪ n ⎪⎪1 dla n⩾ 0 oraz b = 0, a b = ⎨⎪⎪a n b = a n−1 (a n− 1 (... n−1 a)) w przeciwnym wypadku. ⎪⎪⎪⎪ ⎪⎪⎩ bkopiia

Niech teraz  f(n) = 3 n 3, wtedy liczba Grahama zdefiniowana jest jako = f64(4),G gdzie potęga przy funkcji oznacza liczbę powtórzeń. Liczba ta wystąpiła w badaniach nad uogólnionym problemem Ramseya.

Ciekawostka: G jest "znacznie" większe od liczby Mosera. Pokazano, że ta ostatnia nie jest większa od  3 | f (4).

Więcej o liczbie Grahama można się dowiedzieć z artykułu Tomasza Bartnickiego Największa liczba na świecie.

Karol Gryszka

*** Posłowia ***

Posłowie I: Naprawdę duże liczby

Problem. Jaką największą liczbę może zwrócić program długości co najwyżej k (o co najwyżej k znakach)?

Przez gener(k) oznaczmy odpowiedź na powyższe pytanie |(k∈ N). Program, który ma 100 znaków, może zwrócić liczbę zdecydowanie większą niż 100. Program złożony z 1000 znaków może zwrócić liczbę bardzo zdecydowanie większą niż 1000, ale jak bardzo zdecydowanie? Jak szybko rosną możliwości programu wraz ze wzrostem liczby jego znaków?

Znaków, których możemy użyć do napisania programów, jest skończenie wiele. Stąd programów o długości co najwyżej k również jest skończenie wiele, a tylko niektóre z nich będą działać poprawnie i zwracać liczby. Niewątpliwie któryś z nich wygeneruje liczbę największą.

Okazuje się, że |gener(i) dla niedużych i ∈N są naprawdę pokaźne, przy nich liczby Mosera lub Grahama to zupełne mikrusy. Co ciekawe, kiedy wybierzemy konkretne i, wartość gener(i) jest nieobliczalna, nie da się obliczyć jej dokładnej wartości - wyjaśnienie w tekście na sąsiedniej stronie. Można natomiast pokazać, od jakiej liczby gener(i) na pewno jest większe - stąd śmiałość w nazywaniu liczby Mosera mikrusem. Przyjrzyjmy się poniższemu programowi.

obrazek


Funkcja arrow(a, zwraca liczbę a n (a n (...(a n b)...)). kstrzałek

Przyjrzyjmy się dlaczego tak jest. Linie 4-9 rozpisują definicję notacji strzałkowej, opisanej we wcześniejszym artykule. Co się dokładniej w programie dzieje?

  • Linie 2-3 - rozważamy przypadek, gdy liczba strzałek k jest większa niż 1. Wtedy trzeba zrobić jedną strzałkę, a potem jeszcze k − 1.
  • Zachodzi a 0 b = ab, co obsługują linie 4 − 5 oraz a n 0 = 1, co obsługują linie |6− 7.
  •  n n−1 n−1 n− 1 a b = a (a (...(a a)...)), b- 1strzałek co implementują linie 8-9.

W powyższym programie, po zdefiniowaniu funkcji arrow, w ostatniej linii pytamy program o wartość arrow(3, czyli o liczbę Grahama. Program ma dokładnie 201 znaków. A więc wiadomo, że gener(201) ⩾G - być może istnieje program o takiej długości zwracający większą liczbę. A co powiecie o )? |gener(G

Wojciech Czerwiński

Posłowie II: Dowód nierozstrzygalności

Spróbujmy ściśle uzasadnić, że funkcja gener, o której mowa wyżej, jest faktycznie nieobliczalna. Bardziej formalnie: chcemy udowodnić, że nie może istnieć program komputerowy |P taki, który dla danej na wejściu liczby n obliczy gener(n).

Nasze rozumowanie prowadzić będziemy nie wprost. Zakładamy więc, że jednak taki program |P istnieje. Jego długość (okaże się bardzo ważna) oznaczmy przez |k. (To znaczy: kod programu P jest zapisany jako ciąg |k znaków.)

Rozważmy teraz program (a raczej szablon programu) Qn zdefiniowany następująco:

obrazek


Dla jasności czym jest szablon, napiszmy kod konkretnego programu |Q83 :
obrazek


Programy z szablonu Qn | są dziwaczne: mają wbudowany program P | jako wewnętrzną funkcję Z |; nie przyjmują żadnego wejścia oraz w swoim kodzie mają wpisaną "na sztywno" stałą |n. Zastanówmy się, jaką długość ma sam program Qn. W kod Qn | wchodzi kod P | , więc tutaj zużywamy |k znaków. Poza tym mamy jakąś niewielką liczbę innych znaków (jak "r", "e", "t", "u", "r", "n" itd.) oraz stałą, której zapis zużyje ⌈log10n⌉ znaków "0", " |1 ", " 2 ", …, " |9 ". Łącznie: |k+ c + ⌈log n⌉ 10 znaków dla pewnego c ∈N.


Jak widać, program |Qn oblicza liczbę P | (n). A zatem mamy, że |gener(k+ c +⌈log10n⌉)⩾ P (n) oraz, oczywiście, |gener(n) = P (n). Jednak funkcja gener jest niemalejąca, czyli musiałoby być k + ⌈log10n⌉ + c⩾ n dla dowolnego n, a to jest, oczywiście, sprzeczność dla dostatecznie dużych |n.

Tomasz Kazana

Posłowie III: Ortografia

W posłowiu Wojciecha Czerwińsiego "Naprawdę duże liczby" zostało użyte następujące rozumowanie:

Skoro znaków używanych do napisania programu jest skończenie wiele i skoro program ma ograniczoną długość, to liczb definiowanych przez ten program może być też tylko skończenie wiele, a więc wśród nich musi być największa.

Powstaje pytanie, jakie dodatkowe założenia muszą zostać użyte w tym rozumowaniu, by było ono poprawne i dawało prawdziwy wniosek.

O tym, że takie pytanie ma rację bytu świadczy następujący przykład rozumowania dość podobnego do przytoczonego wyżej:

W języku polskim używamy skończonej liczby liter, więc utworzonych z nich napisów ograniczonej długości jest skończenie wiele. W szczególności skończenie wiele jest napisów używających co najwyżej stu liter. Znacznie mniej (czyli też skończenie wiele) jest wśród nich napisów sensownych, a jeszcze mniej tych, które oznaczają liczbę. Liczb dających się tak zapisać jest zatem skończenie wiele, a więc jest też największa taka liczba.

Jak to pogodzić z faktem, że napis

liczba co najmniej o jeden większa od każdej, którą można zapisać za pomocą co najwyżej stu liter

ma tylko osiemdziesiąt liter?

Owe dodatkowe założenia użyte w cytowanym tekście to reguły ortograficzne (tak, ortograficzne!), których musimy przestrzegać przy pisaniu programów.

Marek Kordos