PI Ausrechnen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

ToeB

Betreff: PI Ausrechnen

BeitragMi, Dez 02, 2009 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich wollte das Programm nicht in Projekte oder Codearchiv posten weil ich es für nicht so wichtig halte. Wenn ichs dennoch falsch gepostet habe, bitte verschieben.

Dieses Prog zeigt, wie man PI mit einem PC ausrechnet. Das ganze basiert auf der Dreieck-Berechnung, also ein Kreis wird in x Dreiecke unterteilt, dann kann man einfach den Umfang messen und wenn man dann die Zahl durch zwei teilt, hat man eine Zahl die immer näher zu PI hin geht, umso höher die Dreieckszahl ist. Dumm ist nur das BB nur 5 Stellen hinterm komma anzeigen kann (bzw. damit rechnet). Ich habe schon überlegt einen Stringrechner zu schreiben für lange Kommazahlen aber das würde eh keinen sinn maachen. Deshalb werde ich das Verfahren bald in C schreiben und es euch geben.

hier auf jeden fall der Code :
Code: [AUSKLAPPEN]
Graphics 400,300,16,2
SetBuffer BackBuffer()

Global dreiecke = 3
Global winkel# = 360.0 / dreiecke
Global Umfang#
Global PI_Var#

Repeat
   Text 0,15,"Dreiecke : "+Dreiecke
   Text 0,30,"Umfang : "+Umfang
   Umfang_calc()
   Text 0,0,"PI : "+PI_Var
   Text 0,45,"Winkel : "+winkel
   
   Delay 100
   
   Flip 0
   Cls
Until KeyHit(1)
End

Function Umfang_calc()
   Umfang = Sqr((1-Cos(winkel))*(1-Cos(winkel))+Sin(winkel) * Sin(winkel)) * dreiecke
   PI_Var = Umfang / 2
   dreiecke = dreiecke + 1
   winkel = 360.0 / dreiecke
End Function


Es braucht allein für die ersten 5 Stellen >500 schleifendurchgänge... naja viel spaß...

Wink


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Triton

BeitragDo, Dez 03, 2009 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, Pi durch annäherung an den Kreis durch n-Ecke zu ermitteln ist nicht gerade die effizienteste
Methode und auch nicht die neueste.

Wikipedia hält ne Menge informationen darüber parat, wie man Pi berechnen kann.

Deiner Methode sehr nahe kommt das Verfahren von Archimedes und Ludolph, die aber ein cleveres
System entwickelt haben, und beim 6-Eck angefangen haben und dann das erhaltene Ergebnis
weiterverwendet und die Eckenanzahl bei jedem Schritt verdoppelt haben.

Zitat:
Ich habe schon überlegt einen Stringrechner zu schreiben für lange Kommazahlen aber das würde eh keinen sinn maachen.

Ich veröffentliche "bald" den ultimativen Stringrechner Smile
Coding: silizium-net.de | Portfolio: Triton.ch.vu

ToeB

BeitragDo, Dez 03, 2009 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber man muss ja nicht bei 1 Dreieck anfangen zu rechnen ! Man kann ja auch schon bei 92837632562377862834x10^55 Dreiecken anfangen, dann braucht man den weg dahin gar nicht, das ist ja das tolle. ausserdem soll man ja die einzellnen Schritte sehen können Wink

Und den Stringrechner darf ich doch hoffentlich hierfür benutzen ? Ich meine kann der auch kommzahlen ^^ Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

flona

BeitragDo, Dez 03, 2009 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Es hat zwar eigentlich keinen wirklichen Sinn sich mit der Berechnung von Pi auseinander zu setzen( Und zwar deshalb), aber ich mag die Zahl irgendwie auch. Hab deshalb mal in einer langweiligen Mathestunde Wink die folgende Formel bewiesen: pi(x)=tan(180/x)*x. Diese Funktion nähert sich bei größer werdendem x, der Kreiszahl Pi an und beruht auch auf deiner Dreieck-Methode. Sie ist nur ein wenig vereinfacht worden.
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

Triton

BeitragDo, Dez 03, 2009 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Tangens zu berechnen ist aber nicht so einfach. Siehe http://de.wikipedia.org/wiki/Tangens ab "Reihenentwicklung".
Da ist es schon einfacher mit elementaren Näherungsformeln zu rechnen. Gibt ja einige Wunderschöne, die Pi ergeben.

Zitat:

Und den Stringrechner darf ich doch hoffentlich hierfür benutzen ? Ich meine kann der auch kommzahlen


Klar, und ja, der kann auch Kommazahlen.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

flona

BeitragDo, Dez 03, 2009 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist allerdings auch nicht schwieriger als sin und cos, welche oben verwendet wurden.
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Dez 03, 2009 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
da habe ich auch mal was zu geschrieben

http://freenet-homepage.de/ral...Search.exe

kleines Pi Berechnungsprogramm
Code: [AUSKLAPPEN]
Function PiBerechnen(anzpi)
    Local  a%, b%, c%= anzpi, d%, g%,e%, n%, m%
    For b= 1 To anzpi
        f(b)= 2000
    Next
    While c > 0
       g = 2*c
       d = 0
       b = c
       While b > 0
            d = d + f(b)*10000
            g = g - 1
            f(b) = d Mod g
            d = d / g
            g = g - 1
            b = b - 1
            If b <> 0 Then d = d*b
        Wend
        c = c - 14
        pidummy$= e + d / 10000
        pidummy$=Replace (RSet(pidummy$,4)," ","0")
        If Start = 0 Then pidummy$ = Left(pidummy$,1) +"."+Mid(pidummy$,2):start = 1
        x= x + pidummy$
        Write pidummy$
        M=M+1;
        e=d Mod 10000 
    Wend
End Function
[BB2D | BB3D | BB+]

Triton

BeitragFr, Dez 04, 2009 0:29
Antworten mit Zitat
Benutzer-Profile anzeigen
flona hat Folgendes geschrieben:
Ist allerdings auch nicht schwieriger als sin und cos, welche oben verwendet wurden.

Ich meine natürlich nicht, dass man einfach in BB "Print sin(x)" schreibt.
Der Genauigkeit der BB-eigenen Funktionen sind ja bekanntlich enge Grenzen gesetzt. Und damit auch der Berechnung von Pi über die genannten Methoden.

Es ist eben nicht so einfach, den Sinus von 11° oder so auszurechnen, ohne irgendne entsprechende Taste auf nem Taschenrechner Rolling Eyes



Rallimen: wie immer grandioser Speed, sehr schön Smile
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group