Näherungsbruch für Pi

7 Antworten

Um die Zahl Pi numerisch bis auf eine vorgegebene Genauigkeit zu beschreiben, sind Näherungsbrüche nicht besser als die stinknormalen Dezimalbrüche. Zwei einfache Beispiele:

22/7 = 3.142857.....

355/113 = 3.14159292035 .....

411557987/131002976 = 3.14159265358979325782644815641440084536705 .....

Beachte: Die Anzahl der zutreffenden Dezimalstellen ist praktisch fast exakt gleich groß wie die Anzahl der Stellen, die man zum Schreiben von Zähler und Nenner des Bruches braucht.

Deshalb sehe ich bei deinem Anliegen, "gute" Näherungsbrüche für Pi zu finden, kaum einen praktischen Vorteil.

Das Zauberwort heißt Kettenbruchentwicklung. Damit kannst du den Bruch genau bis zu einer sehr großen Genauigkeit bestimmen. Für 21 Kettenbruchelemente hast du bereits den Bruch 21053343141 / 6701487259. Auf der folgenden Seite findest du die ersten paar Kettenbruchelemente. http://oeis.org/A001203

Damit wirst du eine ausreichende Genauigkeit erzielen. Das ist sogar auf Wikipedia erklärt unter "Kreiszahl". Dort unter Kettenbruchentwicklung.

Aber wie komme ich mit den Zahlen der Seite zu dem Bruch?

0
@deRRatgebeR4

Na du berechnest das doch mit einem PC. Diese Zahlenreihe sind immer die Zahlen vor dem Plus unterm Bruchstrich. Auf das Plus folgt dann 1 geteilt durch die nächste Zahl Plus 1 geteilt durch nächste Zahl und so weiter. Das kannst du programmiertechnisch rekursiv oder iterativ mit einer Schleife lösen. Die Zahlenreihe kannst du in ein Array packen. Du brichst halt an einer bestimmten Stelle ab wo dann unterm Bruchstrich nur die Zahl ohne das Plus und den folgenden Bruch steht. Am Ende erhälst du sowas wie x + 1 / y. Daraus machst du z.B. (x * y) / y + 1 / y und erhälst als Ergebnis (x * y + 1) / y was dann dein Bruch ist.

0

Wenn du mit Computern arbeitest wirst irgendwann an das Limit stoßen, dass diese insbesondere bei Fließkommrechnung gerne "Rundungsfehler" machen. Daher würd ich dir empfehlen es z.B. mit den BBP-Reihen oder anderen Näherungen zu versuchen. Du findest dafür ausführliche Beschreibungen auf Wiki und im Rest des Internets.

Ich rechne in dem Programm die nächste Nachkommastelle aus und füge die dann einem String hinzu. Dann teile ich den Rest multipliziert mit 10 wieder durch die Zahl durch die ich auch vorher geteilt habe.

0

Was möchtest Du wissen?