Das Josephus-Problem: Wer bleibt am Ende übrig?
Das Josephus-Problem ist ein faszinierendes mathematisches Rätsel, das sich mit einer simplen, aber kniffligen Frage beschäftigt:
Stell dir einen Kreis mit n Elementen vor – zum Beispiel 19 Orangen. Reihum wird jede zweite Orange entfernt, bis nur noch eine übrig bleibt. Welche Orange wird es sein?
Das Problem hat eine lange Geschichte und wurde sogar schon in einer TV-Show thematisiert. (Mehr dazu im Video: Josephus-Problem erklärt)
Die Lösung mit PHP
Mit folgendem PHP-Code kannst du berechnen, welche Orange übrig bleibt:
function josephus($n, $k) {
$result = 0; // Start bei Index 0
for ($i = 2; $i <= $n; $i++) {
$result = ($result + $k) % $i;
}
return $result + 1; // Um von Index auf Position zu wechseln
}
// Beispiel: 19 Orangen, jede 2. wird entfernt
$n = 19;
$k = 2;
echo "Die übrig gebliebene Orange ist: " . josephus($n, $k);
Variationen des Josephus-Problems
Du kannst das Problem ganz einfach anpassen:
- Statt jeder 2. Orange könnte jede 3., 4. oder k-te entfernt werden.
- Statt Orangen können es auch Personen, Objekte oder beliebige andere Elemente sein.
Das Josephus-Problem ist nicht nur ein interessantes Gedankenspiel, sondern hat auch praktische Anwendungen in Informatik und Kryptographie. Probiere es aus und experimentiere mit verschiedenen Werten!