Fakultätsrechner
Berechnet die Fakultät einer Zahl von 0 bis 170 — also das Produkt 1 · 2 · 3 · … · n.
Dieses Script von unserem User Scano One berechnet die Fakultät einer Zahl. Die Fakultät (geschrieben mit einem Ausrufezeichen, etwa 5!) ist das Produkt aller ganzen Zahlen von 1 bis zur gesuchten Zahl — die Fakultät von 5 ist also 5 · 4 · 3 · 2 · 1 = 120.
Gebt einfach eine ganze Zahl zwischen 0 und 170 ein und klickt auf „Berechnen" (oder drückt die Eingabetaste) — das Ergebnis erscheint direkt darunter. Bei 170 ist Schluss, denn 171! ist so riesig, dass JavaScript es nicht mehr als Zahl darstellen kann. Und schon ab 21! rundet JavaScript intern: Sehr große Ergebnisse werden dann in der Exponentialschreibweise wie 2.43e+18 angezeigt und stimmen nur in den ersten Stellen exakt.
Fakultäten begegnen euch überall in der Kombinatorik: n! ist die Anzahl der Möglichkeiten, n Dinge in eine Reihenfolge zu bringen. Ein Kartenspiel mit 32 Karten lässt sich also auf 32! Arten mischen — eine Zahl mit 36 Stellen. Auch die Sonderregel 0! = 1 kennt das Script.
Verwandte Scripts im Archiv: Fakultät berechnen (eine zweite Umsetzung desselben Themas), die Binomialverteilung, in deren Formel die Fakultät steckt, und das Pascalsche Dreieck.
Bis 20! ist das Ergebnis ziffergenau; darüber rechnet JavaScript mit gerundeten Gleitkommazahlen.
So funktioniert das Script
Das Script ist ein schönes Einsteigerbeispiel für Schleifen: Es liest eine Zahl ein, prüft sie, multipliziert dann in einer for-Schleife alle Zahlen von 1 bis zur Eingabe zusammen und zeigt das Ergebnis an. Alles steckt in einer sofort ausgeführten Funktion, damit die Namen nicht mit anderen Scripts auf der Seite kollidieren.
const k = parseInt(document.getElementById("fak-zahl").value, 10);
if (isNaN(k) || k < 0 || k > 170) {
ausgabe.textContent = "Bitte gebt eine ganze Zahl zwischen 0 und 170 ein.";
return;
}
parseInt(…, 10) macht aus dem Feldinhalt eine ganze Zahl im Zehnersystem. Die Prüfung dahinter fängt drei Fälle ab: keine Zahl (isNaN), negative Zahlen (für die die Fakultät nicht definiert ist) und Werte über 170. Die Grenze 170 ist nicht willkürlich — 171! übersteigt den größten Wert, den JavaScript als Zahl speichern kann (etwa 1,8 · 10³⁰⁸), das Ergebnis wäre nur noch Infinity.
let ergebnis = 1;
for (let i = 1; i <= k; i++) {
ergebnis = ergebnis * i;
}
Das ist der eigentliche Rechenkern. Die Variable ergebnis startet bei 1, dann läuft die Zählvariable i von 1 bis zur eingegebenen Zahl und multipliziert sich in jedem Durchlauf hinein: erst 1, dann 1 · 2, dann 2 · 3 und so weiter. Für die Eingabe 5 ergibt das 120. Elegant an diesem Aufbau: Bei der Eingabe 0 läuft die Schleife gar nicht erst los und ergebnis bleibt beim Startwert 1 — genau die mathematische Konvention 0! = 1.
ausgabe.innerHTML = "Die Fakultät von " + k + " ist <strong>" + ergebnis + "</strong>.";
Das Original zeigte das Ergebnis in einem alert()-Fenster an; die modernisierte Fassung schreibt es stattdessen per innerHTML in die Ergebnisfläche unter dem Formular — das wirkt ruhiger und das Ergebnis bleibt zum Vergleichen stehen. Sehr große Werte gibt JavaScript dabei automatisch in Exponentialschreibweise aus, etwa 9.33262154439441e+157 für 100!.
document.getElementById("fak-zahl").addEventListener("keydown", function (taste) {
if (taste.key === "Enter") { fakultaet(); }
});
Neben dem Klick auf den Knopf startet auch die Eingabetaste die Berechnung: Der keydown-Listener bekommt bei jedem Tastendruck ein Ereignisobjekt übergeben, dessen Eigenschaft key den Namen der Taste enthält. Nur bei "Enter" wird gerechnet — so fühlt sich das Formular an wie ein richtiger Taschenrechner.
Zum Anpassen: Der Ausgabesatz lässt sich frei umtexten, und wer statt der Fakultät etwa nur die Summe 1 + 2 + … + n möchte, ersetzt in der Schleife das * durch ein + und den Startwert 1 durch 0.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.
Mehr aus der Kategorie Mathematik
-
5 Zahlen
-
Altersberechnungen
-
Anzahl der Stellen von Potenzen kalkulieren
-
Barrel in Liter
-
Beliebige Wurzel ziehen
-
Binomialverteilung
-
Collatz Problem
-
Denk Dir eine Zahl
-
Dezimalbruch
-
Dezimalzahl in Binärzahl umwandeln
-
Die Kamelhändler
-
Downloadzeit-Rechner
-
Drehender Kreis 1
-
Drehender Kreis 2
-
Drehender Kreis 3
-
Dreiecksrechner
-
Dreisatz
-
Dreisatz antiproportional
-
Einfacher Euro-Rechner
-
Fakultät berechnen
-
Fibonacci Reihe berechnen
-
Fibonacci-Zahlen
-
Flächenberechnung / Dreieck
-
Flächenberechnung / Kreis
-
Flächenberechnung / Parallelogramm
-
Flächenberechnung / Rechteck
-
Flächenberechnung / Trapez
-
Gedanken lesen
-
Geschwindigkeitsmesser