Scegli a caso un elemento in un elenco e rimuovi quello scelto per il turno successivoCiao a tutti,
Ho una lista [1,2,3,4,5,6,7,8,9,10] che voglio scegliere a caso un elemento, quindi rimuovere quell'elemento dall'elenco per la successiva selezione casuale. Devo ripetere le selezioni 4 volte.
C'è un modo semplice per rimuovere l'elemento selezionato nell'elenco? Sia Rimuovi che Rimuovi da richiedono l'i-esimo indice degli elementi.
Grazie per l'aiuto.
Automazione e scriptingRi: Scegli a caso un elemento in un elenco e rimuovi quello scelto per il turno successivoUna versione modificata di @Jeff_Perkinson version, che utilizza il valore di ritorno Rimuovi da (restituisce il valore degli elementi rimossi come lista). Questo codice potrebbe non essere così facile da leggere, ma a volte è utile utilizzare il valore restituito da Rimuovi da:
Names Default To Here(1);
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
While(N Items(theList) > 1,
// returns list of removed elements, we remove one value, so get first index
r_val = Remove From(theList, Random Integer(N Items(theList)))[1];
Print(Eval Insert("The chosen item was ^r_val^."));
);
Print("The chosen item is " || theList[1] || ".");Ri: Scegli a caso un elemento in un elenco e rimuovi quello scelto per il turno successivoPuoi anche usare Random Shuffle per randomizzare l'elenco (matrice) e quindi scorrere l'elenco randomizzato (matrice) quattro volte o scegliere i primi quattro elementi
Names Default To Here(1);
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
m_rand = Random Shuffle(m);
Show(m, m_rand);
Ri: Scegli a caso un elemento in un elenco e rimuovi quello scelto per il turno successivoQualcosa del genere funzionerebbe?
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
while(nitems(theList) > 1,
r=random integer(nitems(theList));
print("The chosen item was " || theList[r] || ". Element number " || char(r) || ".");
remove from(theList, r);
);
print("The chosen item is " || theList[1] || ".");