Bailey-Borwein-Plouffe-Formel in C++ implementieren



  • hallo leute,

    hab mir mal das hier auf wikipedia durchgelesen und auch ein paar threads aus dem forum:
    http://de.wikipedia.org/wiki/Kreiszahl#Bailey-Borwein-Plouffe-Formel

    mit Hilfe dieser Formel würde ich gerne 1000 stellen von pi für einen passwort-key berechnen, praktisch, dass man hier nicht die vorhergehenden kennen braucht! allerdings scheitere an der implementiereung dieses algos. ich verstehe auch nicht was das zeichen hinter dem "=" bedeuten soll... wäre nett wenn mir das auch jemand erklärn könnte.

    jedenfalls würde mich noch interessieren:

    ➡ Wie exakt sind die nachkommastellen?

    ➡ Kann es sein, dass die Zahlen bei größeren Stellen nicht mehr stimmen, da die normalen datentypen (in dem Fall double) nicht mehr genau genug sind?

    ➡ wie schnell ist die methode im vergleich zu bisher bekannten?

    Vielen Dank im voraus 🙂



  • rudi++ schrieb:

    mit Hilfe dieser Formel würde ich gerne 1000 stellen von pi für einen passwort-key berechnen

    Bist du auch so einer, der PI als Passwort verwenden will? Das das nichts bringt hatten wir schon mal, weil jeder PI kennt. Das was dann an deinem Passwort geheim und somit das eigentliche Password ist, ist die Stelle, ab der du beginnst.



  • Bitte geben Sie einen Ben schrieb:

    Das was dann an deinem Passwort geheim und somit das eigentliche Password ist, ist die Stelle, ab der du beginnst.

    Sehr gut erkannt!
    Aber wenn dir dieser Satz Magenschmerzen bereitet, dann ignorier ihn einfach. Selbst wenns nachher nicht als pw verwendet wird, würde ichs doch gern am PC umsetzten.



  • also das mit dem sigma hat sich soweit erledigt... kannte dafür nur andere bezeichnungen aber das hab ich jedenfalls verstanden.



  • ein paar tipps zum einstieg:

    1. http://www.gidf.de/
    2. Wer lesen kann, ist klar im Vorteil 😉
      auf deinem schönen Wikipedia-Link ist zu lesen:
      "Baileys Website [1] enthält eine Herleitung des Verfahrens und auch Implementierungen in verschiedenen Programmiersprachen."
      Somit sollte man doch am besten schonmal grob drüberschauen 😉
      Ich habe leider auf die schnelle dort nichts gefunden.

    Aber hier ein paar URLs zur Starthilfe:
    http://www.codeproject.com/cpp/CRHpi.asp?df=100&forumid=217282&exp=0&select=1255496
    http://everything2.com/?node_id=901697
    und ein kompletter C-Source:
    http://everything2.com/index.pl?node_id=1122615

    Ich würde allerdings nicht im Source spicken wenn dich das wirklich interessiert.
    Schnapp dir doch mal Zetter und Stift und mal dir auf, wie du die Formel so löst.
    Sobald ein Programmierer ein Sigma sieht, denkt er eigentlich an eine for-Schleife... also, tu das doch auch 😉



  • Ike schrieb:

    ein paar tipps zum einstieg:

    1. http://www.gidf.de/

    hab ich zuvor gemacht und auch nen menge gefunden, aber da gabs zig verschiedene Formeln und ich wollte es ja mit diesem algorithmus machen.

    Ike schrieb:

    1. Wer lesen kann, ist klar im Vorteil 😉
      auf deinem schönen Wikipedia-Link ist zu lesen:
      "Baileys Website [1] enthält eine Herleitung des Verfahrens und auch Implementierungen in verschiedenen Programmiersprachen."
      Somit sollte man doch am besten schonmal grob drüberschauen 😉
      Ich habe leider auf die schnelle dort nichts gefunden.

    So gings mir auch, hab mir den Link ja angeschaut...

    Ike schrieb:

    Aber hier ein paar URLs zur Starthilfe:
    http://www.codeproject.com/cpp/CRHpi.asp?df=100&forumid=217282&exp=0&select=1255496

    verwendet aber wieder nen anderen algotithmus, und außerdem wird hier fast schon mehr wert auf die berechnung von tan^-1 gelegt als, als auf die von pi.

    Ike schrieb:

    und ein kompletter C-Source:
    http://everything2.com/index.pl?node_id=1122615

    Ich würde allerdings nicht im Source spicken wenn dich das wirklich interessiert.

    den hab ich mir dann auch nicht angeschaut 😉

    aber danke trotzdem für die infos 🙂

    hab jetzt aber festgestellt, dass das hauptproblem an dieser formel folgendes ist: ich sollte doch eigentlich eine einzige Stelle von pi erhalten, erhalte bei dieser Formel aber immer einen double wert, ist das dann wieder eine Teilfolge oder ein Summand oder sonst was? ich meine auf der anderen seite der gleichung steht ja pi...


Anmelden zum Antworten