C'è una domanda su questo sito che è simile a questa domanda, ma ho aggiunto una svolta.
Hai tre input, il numero di persone nel cerchio n , la k -esima persona contata ad ogni passo e la q -esima persona che sopravvive. Le persone nel cerchio sono numerate da 1 a n .
Ad esempio, in una cerchia di 20 persone, la ventesima persona che sopravvive è la prima persona rimossa, il diciannovesimo sopravvissuto è la seconda persona rimossa e così via. Normalmente, il problema di Giuseppe Flavio è determinare l' ultima persona rimossa, qui chiamata il primo sopravvissuto.
Scrivi il programma o la funzione più breve che, con questi tre ingressi, restituisce il numero della persona q -sopravvissuta.
Se ci sono problemi con chiarezza, per favore fatemelo sapere.
Qualche esempio:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
Modifica: supponiamo che tutti gli input siano validi. Cioè nessuno chiederà 0 o nessun numero negativo e nessuno chiederà il 20 ° sopravvissuto in un cerchio di 5 persone (ovvero 1 ≤ q ≤ n)
Modifica: accetterò una risposta a mezzanotte UTC + 7 all'inizio del 2 dicembre.
q=1questo è esattamente lo stesso della domanda di Josephus collegata, giusto?
