Mathematische Funktion um x-te Stelle in irrationaler Zahl zu finden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mathematische Funktion um x-te Stelle in irrationaler Zahl zu finden

    hi

    Die Frage hat nichts spezifisch mit PHP zu tun, aber dieses Forum ist das welches ich als intelligentestes empfinde.

    Und zwar geht es quasi um die Funktion substr() in einer mathematischen Formel.

    Ich brauche eine funktion f(x)=y welche mir die x-te Nachkommezah einer irrationaler Zahl liefert.

    Also bei Pi (3.14159265) wäre es bei f(1)=1, f(2)=4, f(3)=1, f(4)=5

    Mit PHP oder selbst primitiven Funktionen wie floor/ceil wäre es sehr einfach zu lösen, nur eben, ich bräuchte es als mathematische Formel, die man theoretisch in den Taschenrechner eintippen kann oder aber auch ableiten.

  • #2
    f(x) = (zahl * 10^x) mod 10

    PHP-Code:
    function dezimalstelle($zahl$x) {
        return 
    $zahl pow(10$x) % 10;
    }

    var_dump(M_PI);
    // float 3.1415926535898

    var_dump(dezimalstelle(M_PI1));
    // int 1

    var_dump(dezimalstelle(M_PI2));
    // int 4

    var_dump(dezimalstelle(M_PI3));
    // int 1 

    Kommentar


    • #3
      Hallo,

      meinst du speziell für Pi oder allgemein für beliebige Zahlen? Das Problem ist, dass PHP diese Zahlen nur mit der internen Genauigkeit repräsentiert und da ist nach 14 Stellen (Standardkonfiguration) halt Schluss, bzw. bekommst du dann falsche Ziffern geliefert.

      Daher kannst du höchstens auf PHP: Mathematical Extensions - Manual ausweichen.

      Zu deiner Frage: Mit floor, Multiplikation und Subtraktion kann man eine Stelle innerhalb der PHP-Genauigkeit extrahieren, z. B. die 9 (5. Nachkommastelle) in 3.14159265 wie folgt:
      PHP-Code:
      $n 3.14159265;
      $i 5;
      $digit floor($n pow(10$i) - 10 floor($n pow(10$i 1))); // = 9 
      Edit: war wohl zu spät, Modulo ist natürlich die sinnvollere Variante.

      Gruß,

      Amica
      Zuletzt geändert von AmicaNoctis; 01.07.2011, 20:20.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Hi

        Ja, eben, es geht mir genau NICHT darum, es mit PHP zu lösen.
        Das wäre was einfaches.

        Es geht mir mehr darum, eine mathematische Formel zu haben, die auch nur mathematische Operatoren benutzt. Und da gibt es leider kein "floor".

        Also eben, eine Formel, welche ich auf einem Blatt Papier lösen könnte, ableiten, kürzen, usw.

        Kommentar


        • #5
          f(x) = (zahl * 10^x) mod 10

          Kommentar


          • #6
            Mein Fehler, hast Recht, hab nur den PHP-Teil gesehen und die oberste Funktion übersehen.
            Danke, klappt so.

            Kommentar


            • #7
              Auch in meinem PHP-Teil kommt kein floor() vor

              Kommentar

              Lädt...
              X