Bonjour,
Je fais un petite algorithme très simple, mais j'essaie de le faire le plus "performant".
La question est très simple, je pars d'une position, 0,1,2 ou 3, et la position d'après peut être 0,1,2,ou 3 SAUF la position actuelle. Je m'exprime mieux :
Soit la position de départ 0,
le coup d'après, je peux avoir 1,2 ou 3.
Mettons que ce soit 2, le coup d'après, je peux 0,1 ou 3.
J'ai pensé utiliser le module random, et dedans, random.choice sur la liste positions qui contient les valeurs 0,1,2,3... Mais comment je fais pour éviter la valeur actuelle ? Il n'y a pas un random.choice(positions).but(n) ou quelque chose du genre ?
Sinon, ce que j'ai fait, c'est d'enregistrer une variable temporaire (temp) avec la valeur tirée au sort. Si celle-ci est égale à la valeur de référence, je recommence. Mais en terme de performance, je fais potentiellement 1/4 de sélection aléatoire en trop, donc...
Comment contourner ce problème pour faire au plus efficace ?
Je voudrais pouvoir simuler un grand nombre de lancés, et c'est une très bonne occasion pour moi de peaufiner cela.
Si une bonne âme pouvait me mettre sur la voie ou m'aider, ce serait vraiment super super super gentil, merci infiniment d'avance !
Partager