Ilu cyfr Pi tak naprawdę potrzebujemy?

Na dzień dzisiejszy znamy ponad trzynaście biliardów cyfr liczby Pi.

Żeby uświadomić Czytelnika, ile to jest, podam prosty przykład: jeżeli napisalibyśmy te wszystkie cyfry jedna za drugą Arialem 14px, to powstały w ten sposób ciąg znaków byłby dziesięć tysięcy razy dłuższy niż odległość od Ziemi do Księżyca.

Zapisanie 13 biliardów cyfr liczby Pi wymagałoby czternastu jednoterabajtowych dysków twardych (ewentualnie dwóch lub trzech, jeżeli dane skompresujemy).

I tak dalej.

Ale ilu tak naprawdę cyfr potrzebujemy w praktyce?

Weźmy najbardziej ekstremalny przypadek ludzkiej technologii: sondę kosmiczną Voyager One. Obecnie znajduje się ona w odległości około dwudziestu miliardów kilometrów od Ziemi.

Okrąg o promieniu 20 miliardów kilometrów to całkiem spory okrąg.

Jeżeli policzymy obwód tego okręgu używając liczby Pi z dokładnością do piętnastu cyfr dziesiętnych, uzyskany wynik (około 125.5 miliarda kilometrów) będzie niecałe cztery centymetry mniejszy, niż gdybyśmy użyli dokładnej wartości liczby Pi.

Jeszcze raz: ponad 125 miliardów kilometrów obwodu, niecałe cztery centymetry różnicy przy zignorowaniu cyfr dziesiętnych Pi powyżej piętnastej pozycji.

Inny przykład.

Obwód Ziemi (wzdłuż równika), z pominięciem gór, dolin, pływów i innych inności, to ciut ponad 40,000 km (okolice 40,072 km).

Jeżeli do obliczenia tego obwodu użylibyśmy piętnastocyfrowej wersji Pi, otrzymany wynik byłby mniejszy od właściwego o jedną dziesięciotysięczną część grubości ludzkiego włosa.

Wygląda więc na to, że piętnaście cyfr to wystarczająca dokładność.

Jeszcze jedno obliczenie, tym razem na skalę całego Kosmosu. Zgodnie z bieżącą wiedzą, promień Kosmosu to mniej więcej 46 miliardów lat świetlnych.

Jeżeli obliczymy obwód Wszechświata używając "tylko" pierwszych czterdziestu cyfr liczby Pi, błąd wyniesie mniej, niż średnica pojedynczego atomu wodoru.

A więc w najbardziej, absolutnie najbardziej ekstremalnym przypadku nie potrzebujemy więcej, niż 40 cyfr liczby Pi, a tak naprawdę do codziennych zastosowań w zupełności wystarczy nam 14-15 cyfr.

Wszystko powyżej to już tylko zabawki dla matematyków 😉

[DOPISANE KILKA GODZIN PÓŹNIEJ]

Jeszcze dwie sprawy w związku z powyższym:

  1. Można sobie wyobrazić, co prawda czysto teoretycznie, ale jednak, że zamiast rozmiaru atomu chcielibyśmy, aby dokładność wyliczonego obwodu Kosmosu była rzędu odległości Plancka, czyli najmniejszej możliwej odległości (tak, jest takie coś!), wynoszącej coś pi x oko 1.6 * 10-30 m. W takim przypadku potrzebowalibyśmy użyć "aż" 63 cyfr dziesiętnych liczby Pi.
  2. W praktyce zdarza się, że musimy wykonać wiele obliczeń pod rząd, zanim dostaniemy wynik. I może się zdarzyć, że niewielki błąd początkowy da nam większy, niż się można było spodziewać rozrzut na końcu. Na przykład jakaś bardziej skomplikowana trajektoria uwzględniająca kilka ciał niebieskich, kilka okrążeń wokół planety itd. W tym przypadku oczywiście to ilość iteracji wpływa na dokładność wyniku - NASA twierdzi jednak, że nawet do najbardziej skomplikowanych wyliczeń orbit używają Pi z dokładnością maksymalnie 15 cyfr dziesiętnych. Czyli możemy spokojnie uznać, że 13 biliardów cyfr dziesiętnych się raczej nie przyda  😉

5 komentarzy

  1. jaki sens ma określanie promienia kosmosu, skoro nie wiadomo co jest poza tym promieniem. No chyba, że przyjmujemy, że dalej jest sama próżnia a promień kosmosu określa nam zasięg istnienia jakiejkolwiek materii. Lub energii rzecz jasna.

    1. Promień Kosmosu określa jego wiek. Skoro prędkość światła jest nieprzekraczalna, mówienie o tym, co jest poza granicami Kosmosu mija się z celem, bo nic, absolutnie nic nie jest w stanie tam dotrzeć.

  2. “wymagałoby czternastu jednoterabajtowych dysków twardych (ewentualnie dwóch lub trzech, jeżeli dane skompresujemy)”

    Ejże. Serio? Aż tak daje się skompresować liczbę typu PI?

    1. No cóż. Kompresja danych stricte tekstowych jest zadaniem o wiele łatwiejszym, niż kompresja danych binarnych.

      W przypadku samych cyfr jest jeszcze lepiej: dziesięć cyfr to cztery bity, więc już na dzień dobry, bez żadnej kompresji, można zapisać te 12 terabajtów w dwunastu bilionach paczek czterobitowych, co daje 50% oszczędności. Dodajmy do tego jakiś standardowy algorytm kompresujący… Przykład z mojego podwórka: ostatnio założyłem folderowi z piętnastoma gigabajtami danych XML atrybut “compress” i wielkość spadła trzykrotnie. A mówimy tu o skomplikowanych danych zakodowanych UTF-16. Obstawiam w ciemno, że dziesięć cyfr dałoby się spokojnie skompresować sześciokrotnie (strzał w ciemno, ale rozsądny). To, plus czterobitowa reprezentacja, daje moim zdaniem dwunastokrotną oszczędność, czyli jeden dysk terabajtowy i jeszcze by by zostało miejsce na filmy ze śmiesznymi kotami…

      1. Odpowiem samemu sobie, że jednak nie tak różowo to wygląda, jak mi się zdawało! Wyliczyłem sobie przed chwilą pierwszych 5 milionów cyfr Pi (plik ma 6 698 393 bajty – oprócz cyfr jest sformatowany, spacje, połamane linie itd). Po maksymalnej kompresji udało mi się zejść do 2 683 257 bajtów czyli ciut poniżej 40%.

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]