Es gibt eine Frage auf dieser Website , die dieser Frage ähnlich ist, aber ich habe eine Wendung hinzugefügt.
Sie haben drei Eingaben, die Anzahl der Personen im Kreis n , die k- te Person, die bei jedem Schritt ausgezählt wird, und die q- te Person, die überlebt. Die Personen im Kreis sind von 1 bis n nummeriert .
In einem Kreis von 20 Personen ist beispielsweise die 20. Person, die überlebt, die erste Person, die entfernt wurde, der 19. Überlebende die zweite Person, die entfernt wurde, und so weiter. Normalerweise besteht das Josephus-Problem darin, die letzte entfernte Person zu bestimmen , die hier als erster Überlebender bezeichnet wird.
Schreiben Sie das kürzeste Programm oder die kürzeste Funktion, die mit diesen drei Eingaben die Nummer der q- ten Person zurückgibt, die überleben soll.
Wenn es Probleme mit der Klarheit gibt, lassen Sie es mich bitte wissen.
Einige Beispiele:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
Bearbeiten: Angenommen, alle Eingaben sind gültig. Das heißt, niemand fragt nach 0 oder negativen Zahlen und niemand fragt nach dem 20. Überlebenden in einem Kreis von 5 Personen (dh 1 ≤ q ≤ n).
Bearbeiten: Ich akzeptiere eine Antwort um Mitternacht UTC + 7 Anfang Dezember 2.
q=1dies genau das gleiche ist wie die verknüpfte Josephus-Frage, richtig?
