Mi è stata assegnata un'attività per la creazione di un codice. Il compito è la seguente:eliminazione di ogni ennesimo elemento da un elenco in python 2.7
You are the captain of a sailing vessel and you and your crew have been captured by pirates. The pirate captain has all of you standing in a circle on the deck of his ship trying to decide in which order you should walk the plank. Eventually he decides on the following method:
(a) The pirate captain asks you to pick a number N.
(b) The first person to walk the plank will be the Nth person (starting from you).
(c) The captain will then continue around the circle forcing every Nth person to walk the plank.
(d) Once there is only one person left, that person will be given freedom.
For example: The crew consists of: Andrew, Brenda, Craig, Deidre, Edward, Felicity, Greg and Harriet. Andrew selects N=2. The crew will walk the plank in the order: Brenda, Deidre, Felicity, Harriet, Craig, Greg, Edward. Andrew will be given freedom.
Il codice che ho finora è:
def survivor(names, step):
names = ["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"]
Next = step - 1
names.pop(Next)
print names
Questo eliminerà la prima persona ennesima dalla lista ma non sono sicuro di come scorrere la lista per continuare a rimuovere l'ennesima persona.
Ne ho bisogno quindi presumo step = 3, quindi ho bisogno di rimuovere il craig e poi contare da craig in poi e rimuovere il terzo elemento successivo che è felicità e così via fino a quando rimane una sola persona.
Come posso fare questo?
qualcuno mi può aiutare ????????/ – user1839493
Quindi la persona che fa una scelta è sempre il primo della lista? –
ho usato il mio codice per la prima parte che è: Next = step - 1 while len (nomi)> 1: names.pop (Next) Next = Next + step Next = (Next - 1)% len (nomi) i nomi di stampa restituiscono nomi [0] che funzionano per restituire i sopravvissuti, ma quando provo a implementare la seconda parte suggerisco anche che non sembra funzionare \t ho provato a usare questo: asserire il nome nei nomi per il passaggio nel sopravvissuto (nomi, passo): se sopravvissuto == nome: ma non funziona dice UnboundLocalError: variabile locale 'step' a cui si fa riferimento prima del compito return step – user1839493