Happy Pi-Day! Basic-Programm zum erstellen der Zahl Pi gesucht

There are 9 replies in this Thread which has previously been viewed 4,602 times. The latest Post (March 14, 2023 at 9:29 PM) was by Rotzwald.

  • Hallo!

    Da heute internationaler Tag der Zahl Pi ist, hätte ich eine Frage/Bitte: Hat jemand Ahnung, wo ich ein Basic-Programm finde, das die Zahl Pi fortlaufend auf viele, viele Nachkommastellen berechnet bis ich es stoppe. Toll wär auch, wenn die Ausgabe über einen Drucker mit Endlospapier möglich wäre. Hab gesucht, aber nix gefunden ?( .

    Vielen Dank im Voraus!

  • Please login to see this link.

    Da steht auch was zu BASIC auf der Seite.

    Please login to see this attachment. :verehr: .: Mit Please login to see this picture.wäre das nicht passiert! :. :prof:  Please login to see this attachment.

    :syshack: .: Meine 3D-Drucker Teile auf :. Please login to see this link. :strom:

  • Ich kann mich dunkel erinnern, dass ein Programm zur Pi-Berechnung mal auf einer Magic Disk drauf war. Keine Ahnung ob das Basic war, aber ich glaub eine Druck-Option gab es.
    Eine Suche über die md-dirs.txt war jetzt allerdings nicht erfolgreich. Und manuell das Programm suchen, da ist wahrscheinlich die letzte Nachkommastelle von Pi eher mit dem Rechenschieber gefunden ;)

    OPEN 1,4,7: PRINTPlease login to see this link.,"Das Internet": CLOSE 1: REM Internet-Ausdrucker

  • Das hier ist eine Implementierung des Spigot-Algorithmus, so wie beschrieben in Please login to see this link.. In Zeile 1 muß die gewünschte Anzahl Nachkommastellen in 'N=...' zuvor angegeben werden. Am kompliziertesten war eigentlich nur, die Behandlung der vorläufigen Ziffern in den Zeilen 5..9 richtig hinzubekommen. :)

    Code
    1 N=60:M=INT(10*(N+1)/3):DIMD(M-1):FORT=0TOM-1:D(T)=2:NEXT:P=0:FORT=0TON:C=0
    2 FORA=M-1TO1STEP-1:B=2*A+1:D=D(A)*10+C:E=INT(D/B):D(A)=D-E*B:C=A*E:NEXT
    3 D=D(0)*10+C:E=INT(D/10):D(0)=D-E*10:GOSUB5:NEXT:E=0:GOSUB5:PRINT:END
    4 :
    5 IFT=2THENPRINT".";
    6 ON2+SGN(E-9)GOTO7,8,9
    7 PRINTMID$(STR$(P),3);:P=10+E:RETURN
    8 P=10*P+9:RETURN
    9 P=P+1:GOSUB7:P=10:RETURN


    Gruß,

    Michael

  • Rotzwald: Brauchste 'ne neue Nerdtapete? Und Dein Handle, bezieht sich das auf Nasenhaare? :thumbsup:

    Please login to see this link.Please login to see this link.Please login to see this link.Please login to see this link. :böse Please login to see this link. Please login to see this link.
    Please login to see this link.

    „Vor dem Himmel kommt das Leben auf Erden, und da gilt es, eine soziale Gesellschaft aufzubauen.“ – Heinz Nixdorf (1986)

    Please login to see this link. :beer:Please login to see this link. Please login to see this link.Please login to see this link.

  • Das hier ist eine Implementierung des Spigot-Algorithmus, so wie beschrieben in Please login to see this link.. In Zeile 1 muß die gewünschte Anzahl Nachkommastellen in 'N=...' zuvor angegeben werden. Am kompliziertesten war eigentlich nur, die Behandlung der vorläufigen Ziffern in den Zeilen 5..9 richtig hinzubekommen. :)


    Kriegt man das auch ohne Angabe der Nachkommastellen hin, so daß immer weitere Stellen berechnet werden, solange das Programm läuft ?

    Für den Triumph des Bösen reicht es, wenn die Guten nichts tun.
    Edmund Burke (1729-1797)

  • Quote from Toast_r

    Kriegt man das auch ohne Angabe der Nachkommastellen hin, so daß immer weitere Stellen berechnet werden, solange das Programm läuft?


    Ja. Wird z.B. hier beschrieben: Please login to see this link.

    Allerdings läßt sich für mich da keine einfache Implementierung in BASIC daraus ableiten. Da scheint es mir einfacher zu sein, nach der Ausgabe von N Stellen den 'bounded Spigot'-Algorithmus neu mit 2xN Stellen zu starten und dann erst mal die ersten N Stellen in der Ausgabe zu verwerfen.

    In dem Array D(...) bilden sich im Verlauf der Berechnung sehr große ganze Zahlen (d.h. ohne Nachkommastellen), lt. Please login to see this link. bleiben die aber auch bei N=5000 unter 600000000, also gut innerhalb der Rechengenauigkeit des C64. Selbst wenn man Please login to see this link. zu Hilfe nimmt, ist ohnehin bei N~=3000 Schluß. :)

  • Danke Mike, wir haben Dein Programm heute am C64 Stammtisch in Wien laufen gehabt. (Was auch dien Frage von Telespielator beantworten sollte, wofür ich das brauche :wink: Für N=60 hat es etwa 10 Minuten gebraucht. Wir haben versucht es auszureizen, bei n=2350 war schluss (out of memory). Mit N=2200 lief es dann mehrere Stunden, natürlich langsamer als in der N=60 Variante. Etwa vier Minuten pro Nachkommastelle. War auf alle Fälle eine nette Sehenswürdigkeit am Treffen.

  • N=2311 ist das Maximum ;)

    Hol Deine Frau ab, Sarah

    Sie redet wieder Nazidreck

    Nimm sie fest in den Arm

    Nimm ihr die Streichhölzer weg

    Falls irgendwem die Signatur nicht gefällt : Lies ´ne andere