Il y a une question sur ce site qui est similaire à cette question, mais j'ai ajouté une touche.
Vous disposez de trois entrées, le nombre de personnes dans le cercle n , la k personne -ème compté à chaque étape, et la q personne -ème qui survit. Les personnes dans le cercle sont numérotées de 1 à n .
Par exemple, dans un cercle de 20 personnes, la 20e personne à survivre est la toute première personne enlevée, le 19e survivant est la deuxième personne enlevée et ainsi de suite. Normalement, le problème de Josephus est de déterminer la dernière personne enlevée, appelée ici le premier survivant.
Écrivez le programme ou la fonction la plus courte qui, avec ces trois entrées, renvoie le nombre de la q- ème personne à survivre.
S'il y a des problèmes de clarté, faites-le moi savoir.
Quelques exemples:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
Modifier: Supposons que toutes les entrées sont valides. Autrement dit, personne ne demandera 0 ou aucun nombre négatif et personne ne demandera le 20e survivant dans un cercle de 5 personnes (c'est-à-dire 1 ≤ q ≤ n)
Edit: j'accepterai une réponse à minuit UTC + 7 début décembre 2.
q=1c'est exactement la même chose que la question liée de Josephus, non?
