Frage

Ich bin gespannt auf unendliche Zahlen im Computer, insbesondere Pi.

Damit ein Computer einen Kreis rendert, müsste er Pi verstehen. Aber wie kann es, wenn es unendlich ist?

Betrachte ich zu viel in das? Würde es nur einen abgerundeten Wert verwenden?

War es hilfreich?

Lösung

Mathematisch sind Computer sowohl endlich als auch nicht kontinuierlich und können PI weder vollständig kennen noch korrekt einen Kreis rendern.

Im digitalen Bereich existiert jedoch keiner von beiden sowieso, so dass es ausreicht, um PI zu approximieren und dann den Kreis ungefähr zu rendern, was zu genau den gleichen Pixeln führt, die ohnehin aus einem exakten PI berechnet worden wären.

In jedem Fall sind die resultierenden Pixel nicht Ja wirklich Ein Kreis, da sie eine endliche Sammlung digitaler Punkte sind und ein Kreis eine Kurve ist, die aus einer unendlichen Anzahl von Punkten besteht, die meisten mit irrationalen Werten.

(Mir wurde darauf hingewiesen, dass PI normalerweise nicht zum Zeichnen eines Kreises verwendet wird. Dies gilt jedoch, aber die Methoden, die zum Zeichnen eines Kreises verwendet werden haben immer noch die gleichen Probleme).

Andere Tipps

Eine Näherung ist im Allgemeinen ausreichend. Um einen Kreis zu "rendern", muss der Computer PI nur gut genug verstehen, um die erforderliche Auflösung genau zu rendern.

Bearbeiten: Wie andere betont haben, brauchen Sie nicht einmal PI, um einen Kreis zu rendern. Trotzdem lautete der Kern der Frage: "Wie gehen Computer mit Zahlen wie Pi um?" Sie verwenden Annäherungen, und wer diese Näherungen verwendet, muss entscheiden, ob sie für den gegebenen Zweck präzise genug sind.

Sie brauchen Pi überhaupt keinen Kreis. Es gibt viele Möglichkeiten, einen Kreis zu zeichnen. Der naive Weg ist mit Sinus und Cosinus.

Der Algorithmus, den ich am häufigsten auf 8-Bit-Maschinen gesehen habe, war Bresenhams Kreis. Dafür brauchen Sie nicht einmal einen Gleitpunkt -Mathematik.

Programmiersprachen verwenden eine abgerundete Konstante für PI und ähnliche "unendliche" Zahlen.

Um eine höhere Präzision zu erzielen, verwenden Sie iterative Algorithmen, die so lange wie erforderlich sind.

Computer verwenden nur eine gute Annäherung an PI.

Aus MSDNs Artikel über System.math.pi

Der Wert dieses Feldes beträgt 3.14159265358979323846.

Übrigens: Pi ist nicht unendlich. Es ist irrational, was bedeutet, dass es unendlich viele nicht wiederholende Dezimalstellen hat. Es gibt mehrere Ausdrücke für PI, die sehr kurz sind. (Siehe Wikipedia -Seite für mehr Details)

Hier ist ein wunderbar kurzer Ausdruck für PI:

PI as Integral

Irgendwo sah ich einen Beweis dafür, dass Sie einen Kreis um das Universum bis zur Millimetergenauigkeit ziehen würden, mit anderen Worten, weitaus weniger Ziffern, als von Menschen mit zu viel Zeit in den Händen (oder von Menschen mit zu viel Zeit in der Hand berechnet wurden zu viel Rechenleistung ...). Wenn ich diesen Beweis nur finden könnte ... (Bearbeiten) fand es

Ich glaube, es rundet es auf eine sehr kleine Zahl und ist höchstwahrscheinlich eine Konstante. Wenn Sie PHP verwenden, rendert PI so:

echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898

Genau wie Sie nur 3.14159 in der High School brauchen, brauchen Computer nur so viel, um es ziemlich genau zu erhalten.

Eine Annäherung ist oft "gut genug", egal ob Sie sie mit einer Methode von erhalten Diese Seite oder noch einer.

"Rendering" ist eine andere Sache. Wenn Sie eine endliche Bildschirmauflösung haben, spielt ein perfekter Wert von π keine Rolle.

UPDATE: Berechnung könnte eine andere Angelegenheit sein, die sich vom Rendern unterscheidet. Einige Anwendungen erfordern möglicherweise eine größere Präzision als das Standard -Double. Es hängt vom Problem ab.

Computer verwenden nur abgerundete Werte von PI, es sei denn, es gibt natürlich einen Sonderfall wie wissenschaftliches Computer. Zum Beispiel wird in Python Pi als:

>>> import math
>>> math.pi
3.1415926535897931

Sie können dies selbst im Leerlauf, Pythons Interactive Interpreter testen.

Pi ist nicht unendlich, es ist irrational, was bedeutet, dass Sie es nicht als Quotienten ausdrücken können. Es hat unendlich viele Ziffern.http://en.wikipedia.org/wiki/proof_that_π_is_irrational

Über Computer finden Sie hier einige Informationen.http://en.wikipedia.org/wiki/computing_π

Schöne Seite ist auch diesehttp://3.14159265358979323846264338327950288419716939375105820974944592.com/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top