Mescolare
Soluzione 1 La funzione shuffle() della libreria random risolve il problema
1 2 3 4 5 6 |
import random # shuffle() NUMERI=[1,9,2,8] random.shuffle(NUMERI) # [8, 2, 9, 1] random.shuffle(NUMERI) # [9, 8, 1, 2] |
Soluzione 2 Osserva n volte scambia l’elemento i-esimo con un elemento a caso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import random # randint() def mescola(lista): n=len(lista) # Quanti scambi? for i in range(n): p=random.randint(0,n-1) # posizione temp = lista[i] # scambia lista[i] = lista[p] lista[p] = temp NUMERI = [...] # Inserisci i numeri mescola(NUMERI) |
Soluzione 3 Osserva n volte scambia una coppia di elementi a caso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import random # randint() def mescola(lista): n=len(lista) # Quanti scambi? for i in range(n): p1=random.randint(0, n-1) # 1° posizione casuale p2=random.randint(0, n-1) # 2° posizione casuale temp = lista[p1] # scambia lista[p1] = lista[p2] lista[p2] = temp NUMERI = [...] # Inserisci i numeri mescola(NUMERI) |
La scambia può essere scritta più compatta
1 2 3 |
... lista[p1], lista[p2] = lista[p2], lista[p1] ... |