Ho un problema con la randomizzazione di un elenco con restrizioni in Python (3). Ho visto alcune altre domande relative a questo, ma nessuno di loro sembra davvero risolvere il mio problema. Sono un principiante, quindi qualsiasi aiuto è molto apprezzato!shuffling di un elenco con restrizioni in Python
Sto progettando un esperimento utilizzando due tipi di stimoli: forme e colori (quattro di ciascuno). Ho bisogno di generare permutazioni di tutte le 16 combinazioni, che ho fatto con random.shuffle funzione:
import random
# letters are shapes, numbers are colors
x=["a1","a2","a3","a4","b1","b2","b3","b4","c1","c2","c3","c4","d1","d2","d3","d4"]
random.shuffle(x)
Fin qui tutto bene. Tuttavia, voglio evitare che una forma (lettera) o un colore (numero) appaiano due volte di seguito nel mio risultato (ad esempio "a2" seguito da "a4" o "c2" seguito da "a2").
C'è un modo per rendere tale restrizione?
Grazie in anticipo!
Fin qui tutto bene? 'random.shuffle (x)' restituisce None perché mischia 'x' al posto. Pertanto, 'result' sarà None. – zondo
Questo sembra un problema con il grafico. Ogni nodo ha un bordo che punta a tutti gli altri nodi ad eccezione di quelli con la stessa forma o colore (quindi (n-1)^2 spigoli per nodo). E poi vuoi una traversata casuale che colpisca ogni vertice esattamente una volta - penso un percorso hamiltoniano. –
@zondo Oh, giusto grazie per averlo indicato. Ho corretto l'esempio. – Frederik