Dodaj do ulubionych

Skończoność rozwinięcia dziesiętnego liczby PI

14.12.22, 13:32
Witam!
Mam pytanie-zagadnienie odnośnie liczby PI.
Teoretycznie wartość liczby ‘pi’ otrzymamy dzieląc długość okręgu (obwodu) przez średnicę tegoż okręgu.
Na forum znalazłem takie stwierdzenie odnośnie dokładności obwodu okręgu:
,,Działa tu znana zasada nieoznaczoności Heisenberga:
Dokładny promień (1cm) - niedokładny obwód (2pi cm)
Niedokladny promień (1/pi) - dokładny obwód (2cm).’’


Ale skoro okrąg to określony skończony obszar (okrąg ma skończoną długość) i długość średnicy też jest skończona, to ich iloraz nie powinien być też skończony ? A jednak nie można znaleźć/określić końca rozwinięcia dziesiętnego liczby ‘pi’ która jest zapisywana jako 3,141592653589…
Obserwuj wątek
    • stefan4 Re: Skończoność rozwinięcia dziesiętnego liczby P 16.12.22, 11:15
      nova_novitate:
      > Na forum znalazłem takie stwierdzenie odnośnie dokładności obwodu okręgu:
      > ,,Działa tu znana zasada nieoznaczoności Heisenberga:
      > Dokładny promień (1cm) - niedokładny obwód (2pi cm)
      > Niedokladny promień (1/pi) - dokładny obwód (2cm).’’


      Jaki śmieszek tu pasuje? Taki 😀? Czy taki 🤣? Nie znam się na emotkach, więc trudno mi właściwie skomentować pomysł stosowania fizycznej zasady nieoznaczoności do abstrakcyjnych tworów geometrii.

      nova_novitate:
      > Ale skoro okrąg to określony skończony obszar (okrąg ma skończoną długość) i
      > długość średnicy też jest skończona, to ich iloraz nie powinien być też skończony?

      Jest skończony: mieści się między 3 a 4. Tylko że jest niewymierny, więc nie ma skończonego rozwinięcia dziesiętnego. Dlaczego niby iloraz dwóch liczb rzeczywistych miałby zawsze być wymierny? Właśnie sama podałaś kontrprzykład.

      Ale można sobie pomyśleć system pozycyjny zapisu liczb, w którym π będzie miało skończone rozwinięcie; np. system o podstawie π...

      - Stefan
    • tbernard Re: Skończoność rozwinięcia dziesiętnego liczby P 19.12.22, 13:49
      Skończone lub okresowe rozwinięcie dziesiętne lub o dowolnej podstawie całkowitej większej od 1 skutkowało by wymiernością liczby. Jak ktoś jest dociekliwy i wystarczająco zdyscyplinowany intelektualnie, to znajdzie sobie w necie dowód na to, że liczba pi jest niewymierna a nawet więcej, jest ona przestępna.
      • stefan4 Re: Skończoność rozwinięcia dziesiętnego liczby P 20.12.22, 17:09
        tbernard:
        > rozwinięcie dziesiętne lub o dowolnej podstawie całkowitej większej od 1 [...]

        ... to jeszcze żadna zabawa. A co z podstawami niecałkowitymi? Niżej dla chętnych program, który zapisuje liczbę w układzie pozycyjnym o podstawie rzeczywistej większej od 1. Na przykład dla danych:
         Rozwijana liczba (>= 0):    10
         Podstawa rozwiniecia (> 1): 3.14
         Ile cyfr po kropce (>= 0):  2

        Program daje:
         1 0 0 . 0 1

        (spacje między cyframi są dla ułatwienia życia komuś, kto zechce podać podstawę większą niż 10). Ten wynik oznacza:
         10   ≈   1·3.14^2 + 0·3.14^1 + 0·3.14^0 + 0·3.14^(-1) + 1·3.14^(-2)

        z dokładnością do 3.14^(-2). Jak zażądamy większej liczby cyfr po kropce, to dokładność wzrośnie.

        A co z ujemnymi podstawami? Da się z nimi żyć, skoro wszyscy żyjemy z nimi, nawet nie zauważając, stosując komputerową arytmetykę uzupełnieniową.

        A co z systemami pozycyjnymi o zmiennej podstawie? Na przykład:
            1000 milisekund to sekunda (podstawa 1000),
            60 sekund to minuta (podstawa 60),
            60 minut to godzina (podstawa 60),
            24 godziny to doba (podstawa 24),
            365.25 dób (średnio) to rok (podstawa 365.25),
        Widać również działają. Jest w co się bawić!

        Jednak poniższy program jest mniej zabawowy i wymaga stałej podstawy większej niż 1:

        #include<stdio.h>
        #include<stdlib.h>
        #define DUZO 100
        int main() {
          int po_kropce;
          double  liczba, podstawa, potegi[DUZO];
        
          do {
            printf("  Rozwijana liczba (>= 0):    ");
            scanf("%lf", &liczba);
          } while (liczba < 0);
          do {
            printf("  Podstawa rozwiniecia (> 1): ");
            scanf("%lf", &podstawa);
          } while (podstawa <= 1);
          do {
            printf("  Ile cyfr po kropce (>= 0):  ");
            scanf("%i", &po_kropce);
          } while (po_kropce < 0);
        
          // WSTEP: wypelnienie tablic potegami podstawy:
          potegi[0] = 1;
          for (int i=1; i<DUZO; i++)  potegi[i] = potegi[i-1]*podstawa;
        
          // Czesc liczby przed kropka:
          int ile_cyfr = 0;
          while (ile_cyfr < DUZO && liczba >= potegi[ile_cyfr])  ile_cyfr++;
          if (ile_cyfr >= DUZO) {
            printf("\nBLAD! Popraw stala  DUZO  w programie.\n");
            exit(1);
          }
          if (ile_cyfr == 0)  printf(" 0");
          else
            for (int i = ile_cyfr; i>0; i--) {
              int cyfra = liczba/potegi[i-1];
              liczba -= cyfra*potegi[i-1];
              printf(" %i", cyfra);
            }
        
          printf(" .");
        
          // Czesc liczby po kropce:
          liczba *= podstawa;
          for (int i = 1; i<=po_kropce; i++) {
            liczba *= podstawa;
            int cyfra = ((int)(liczba))/podstawa;
            liczba -= cyfra*podstawa;
            printf(" %i", cyfra);
          }
          printf("\n");
        }
        



        - Stefan
    • tbernard Re: Skończoność rozwinięcia dziesiętnego liczby P 19.12.22, 13:56
      „Był i jest i długo sławionym ów będzie, który kół obwód średnicą wymierzył”

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka