Fakultät rekursiv berechnen



  • Rekursion sollte nur über die Ackermann-Funktion beigebracht werden. Bonuspunkte wer raus findet, was der Code macht.



  • pyhax schrieb:

    Michael E. schrieb:

    Außerdem finde ich double, ohne den Anwendungszweck zu kennen, fast schon sinnvoller als int, denn bei letzterem ist bereits ab 13! Schluss.

    Dann nehm halt C++11 und unsigned long long 😃

    👍
    Was ich auch faszinierend finde, aber zugleich bescheuert, ist folgendes Programm das einfach nur die größt-mögliche Zahl, die man in einem long double speichern kann, ausgibt. Das muss ich irgendwie falsch gemacht haben, auch wenn andererseits auf ideone (http://ideone.com/Na2AH) long double anscheinend 12 Bytes groß ist (wie bei mir). Und wie groß ist bitteschön 2 hoch 96 ? 😮

    @otze: Ich will, ich will! 🤡



  • @Otze: Ich glaube, ich habe es raus.

    ρ(a,b,0) = a + b
    ρ(a,b,1) = a * b
    ρ(a,b,2) = ab
    ...

    Das nächste Glied lässt sich durch das wiederholen der Operation des vorigen, angewandt auf a , aber b - 1 mal (nicht 1 mal natürlich), herausfinden.

    Also ist das Folgeglied von a + b , wenn a bspw. = 3 (eig. irrelevant) und b = 4:

    a + a + a + a
    = 4 * a
    = b * a
    

    Also wird b - 1 = 3 mal + x => + a angewandt: a +a +a +a



  • Michael E. schrieb:

    Außerdem finde ich double, ohne den Anwendungszweck zu kennen, fast schon sinnvoller als int, denn bei letzterem ist bereits ab 13! Schluss.

    Die Rückgabe (und die Zwischenergebnisse) sollten vom Typ double sein (da die Ergebnisse sehr groß werden), der Parameter aber vom Typ int (sofern man nicht die Gammafunktion implementiert).


  • Mod

    Hacker schrieb:

    Was ich auch faszinierend finde, aber zugleich bescheuert, ist folgendes Programm das einfach nur die größt-mögliche Zahl, die man in einem long double speichern kann, ausgibt. Das muss ich irgendwie falsch gemacht haben, auch wenn andererseits auf ideone (http://ideone.com/Na2AH) long double anscheinend 12 Bytes groß ist (wie bei mir). Und wie groß ist bitteschön 2 hoch 96 ? 😮

    Lern doch bitte endlich mal, was Fließkommazahlen sind. Dann verstehst du auch die Ausgabe. Und nein, das ist nicht 2^96, was du da bekommst.



  • SeppJ schrieb:

    Und nein, das ist nicht 2^96, was du da bekommst.

    Ist das 296?


  • Mod

    Hacker schrieb:

    SeppJ schrieb:

    Und nein, das ist nicht 2^96, was du da bekommst.

    Ist das 296?

    Ja? Hast du keinen Taschenrechner? Glaubst du einem Computer nicht?



  • SeppJ schrieb:

    Hacker schrieb:

    SeppJ schrieb:

    Und nein, das ist nicht 2^96, was du da bekommst.

    Ist das 296?

    Ja? Hast du keinen Taschenrechner?

    Doch, nur ist der so fies und gibt mir sowas:

    2^96 = 7.92281625 × 1028

    Glaubst du einem Computer nicht?

    Was!? Natürlich. Stell das nie in Frage.


  • Mod

    Hacker schrieb:

    Doch, nur ist der so fies und gibt mir sowas:

    2^96 = 7.92281625 × 1028

    🙄 Ich korrigiere: Bevor du lernst, was Fließkommazahlen sind und was dein Maximum zu bedeuten hat, lern erst einmal den Zahlenraum über 1000.



  • SeppJ schrieb:

    Hacker schrieb:

    Doch, nur ist der so fies und gibt mir sowas:

    2^96 = 7.92281625 × 1028

    🙄 Ich korrigiere: Bevor du lernst, was Fließkommazahlen sind und was dein Maximum zu bedeuten hat, lern erst einmal den Zahlenraum über 1000.

    Ok. Das ist natürlich umgerechnet ungefähr dasselbe wie meine Ausgabe.


Anmelden zum Antworten