Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.01.2009, 23:34

Pi berechnen

C-/C++-Quelltext

1
2
3
4
5
6
//gibt die ersten 800 Stellen von Pi aus:

int a=10000,b,c=2800,d,e,f[2801],g;
main(){
for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}

Wie und warum funktioniert das?
Lieber dumm fragen, als dumm bleiben!

Anonymous

unregistriert

2

20.01.2009, 23:37

Willst du jetzt den mathematischen Hintergrund wissen oder wissen wie der Code funktioniert?

3

20.01.2009, 23:39

Den mathematischen Hintergrund.
Die Frage ist z.B. ob man das so verändern könnte, dass mehr als 800 Stellen ausgerechnet werden, oder dass es bloß eine Art Komprimierung der 800 Stellen darstellt.
Im ersten Fall könnte man vielleicht was herleiten und dann bissle optimieren, im zweiten Fall, naja, wie kommt man darauf?
Lieber dumm fragen, als dumm bleiben!

4

21.01.2009, 14:37

Google zeigt mir so etwas: http://www.activevb.de/rubriken/kolumne/kol_21/pi.html

Keine Ahnung, ob du damit was anfangen kannst, jedenfalls interessiert
es mich auch ein wenig, denn hab ich Pi bisher immer nur als Konstante
angesehen.
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

5

21.01.2009, 14:44

Hallo

Zitat von »"Shiver"«

denn hab ich Pi bisher immer nur als Konstante
angesehen.


Und was ändert sich da jetzt?

chrische

6

21.01.2009, 14:48

Zitat von »"chrische5"«

Hallo

Zitat von »"Shiver"«

denn hab ich Pi bisher immer nur als Konstante
angesehen.


Und was ändert sich da jetzt?

chrische

Ok, ein wenig falsch ausgedrückt. Pi ist eine Konstante, habe aber
gerade das Interesse entwickelt, wie man Pi berechnen kann.
(gut, man könne sagen: Pi = U/d oder Pi = A / r² im Kreis, aber Pi muss
ja dennoch definiert worden sein)
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

7

21.01.2009, 14:51

Hallo

Pi = U/d passt schon. Wenn du ausreichend genau misst, kannst du pi auch ausreichend genau berechnen. :D

chrische

8

21.01.2009, 14:56

Jo, aber da irgendwann die Messfähigkeit nachlässt und man einige Milimeter falsch liegen muss
(da ja das gezeichnete vom Bleistift schon 1-2 mm dick ist), kommt man nicht weit. :D
Aber auf 3,14 kommt man sicher.
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

9

21.01.2009, 14:57

gibt noch nen einfacheres annäherungsverfahren was aber ziemlich rechenintensiv ist:

man hat einen viertelkreis in einem quadrat und erzeugt immer eine zufallskoordinate innerhalb dieses quadrates. man zählt die anzahl der coordinaten mit und zählt wie oft eine koordinate innerhalb des viertelkreises ist. pi ist dann

Quellcode

1
anzahl_treffer_viertelkreis / anzahl_koordinaten * 4 = Pi


je mehr korrdinaten du nimmst desto genauer wird es.

10

21.01.2009, 15:04

Wir hatten jetzt mal:

(Link)


Was schon irgendwie elegant aussieht, aber nicht wie das, was das Programm da macht.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige