Die Kamelhändler
Ein Zahlenrätsel um zwei Kamelhändler in der Wüste — findet heraus, wie viele Kamele jeder besitzt.
Bei diesem Javascript geht es darum, ein kleines Zahlenrätsel zu lösen. Verpackt hat es unser User david97 in eine Wüstengeschichte: Zwei Kamelhändler treffen sich, und der eine sagt: „Gib mir eins von deinen Kamelen, dann besitze ich doppelt so viele wie du." Darauf der andere: „Nein, gib mir lieber eins von deinen, so haben wir beide gleich viel!" Die Frage: Wie viele Kamele besitzt jeder der beiden?
Tragt eure Vermutung in die beiden Felder ein und klickt auf „Antwort prüfen" — das Script verrät euch sofort, ob ihr richtig liegt. Welcher Händler in welchem Feld steht, ist dabei egal; das Script akzeptiert beide Reihenfolgen.
Hinter dem Rätsel steckt ein lineares Gleichungssystem mit zwei Unbekannten: Beide Aussagen der Händler lassen sich als Gleichung aufschreiben, und wer sie kombiniert, kommt auch ganz ohne Raten auf die Lösung. Das Script geht den umgekehrten Weg und prüft einfach, ob eure Zahlen beide Bedingungen erfüllen.
Mehr Zahlenspielereien dieser Art findet ihr in unserem Archiv unter Gedanken lesen und Denk Dir eine Zahl.
Treffen sich zwei Kamelhändler in der Wüste. Sagt der eine: „Gib mir eins von deinen Kamelen, dann besitze ich doppelt so viele wie du." Darauf der andere: „Nein, gib mir lieber eins von deinen, so haben wir beide gleich viel!" — Wie viele Kamele besitzt jeder?
So funktioniert das Script
Das Script liest die beiden getippten Zahlen ein, bildet daraus die Kamelbestände nach einer gedachten Übergabe und prüft dann, ob die beiden Aussagen der Händler zu euren Zahlen passen. Das Original von 2007 arbeitete mit alert()- und prompt()-Dialogfenstern; die modernisierte Fassung nutzt stattdessen ein normales Formular mit Ergebnisfläche.
const a = parseInt(document.getElementById("kamel-a").value, 10);
const b = parseInt(document.getElementById("kamel-b").value, 10);
parseInt(…, 10) macht aus dem Feldinhalt eine ganze Zahl; die 10 legt das Zehnersystem fest. Steht in einem Feld nichts Brauchbares, kommt NaN („Not a Number") heraus — das fängt die Prüfung mit isNaN() ab und bittet freundlich um eine Eingabe, statt einfach „falsch" zu melden.
const c = a - 1;
const d = b + 1;
const e = a + 1;
const f = b - 1;
Hier werden die beiden denkbaren Übergaben durchgespielt: c und d sind die Bestände, wenn der erste Händler ein Kamel an den zweiten abgibt (er hat eins weniger, der andere eins mehr), e und f die Bestände für die Gegenrichtung. Genau diese vier Größen brauchen die Aussagen aus dem Rätsel.
if ((2 * c === d && e === f) || (2 * f === e && c === d)) {
ausgabe.textContent = "Richtig!";
} else {
ausgabe.textContent = "Leider falsch";
}
Die Bedingung übersetzt beide Händler-Sätze in Mathematik: „Nach der Übergabe besitzt einer doppelt so viele wie der andere" (2 * c === d) und „nach der Übergabe in die andere Richtung haben beide gleich viel" (e === f). Das && bedeutet „und" — beide Aussagen müssen gleichzeitig stimmen. Das || („oder") davor sorgt dafür, dass es keine Rolle spielt, welchen Händler ihr in welches Feld geschrieben habt: Die zweite Klammer prüft schlicht dieselben Bedingungen mit vertauschten Rollen.
document.getElementById("kamel-pruefen").addEventListener("click", pruefen);
Zum Schluss wird die Funktion mit dem Knopf verbunden: addEventListener("click", …) lässt pruefen() bei jedem Klick laufen. Das Script steht dafür unter dem Formular, damit Felder und Knopf schon existieren.
Zum Anpassen: Nach diesem Muster könnt ihr leicht eigene Rätsel bauen — Geschichte im HTML austauschen und die Bedingung in der if-Abfrage an eure Aufgabenstellung anpassen. Die Lösung des Kamel-Rätsels verraten wir hier natürlich nicht; mit den zwei Gleichungen aus der Erklärung findet ihr sie aber auch auf Papier.
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
-
Downloadzeit-Rechner
-
Drehender Kreis 1
-
Drehender Kreis 2
-
Drehender Kreis 3
-
Dreiecksrechner
-
Dreisatz
-
Dreisatz antiproportional
-
Einfacher Euro-Rechner
-
Fakultät berechnen
-
Fakultätsrechner
-
Fibonacci Reihe berechnen
-
Fibonacci-Zahlen
-
Flächenberechnung / Dreieck
-
Flächenberechnung / Kreis
-
Flächenberechnung / Parallelogramm
-
Flächenberechnung / Rechteck
-
Flächenberechnung / Trapez
-
Gedanken lesen
-
Geschwindigkeitsmesser