Ciao !Originariamente inviato da gotta
...non ripeta lo stesso numero?
es: io ho devo fare a = rnd*4 pero cosi puo darsi che in una text mi esce la sequenza 2 3 4 4 4 1 0 mentre io voglio che escono i numeri a caso ma senza ripetersi ad esempio 04 2 3 1 e quando ha fatto tutte le combinazioni e quindi ricomincia da capo allora puo ricominciare con un altro random sempre nello stesso modo. nn so se avete capito il mio italiano è deludente![]()
Ci sono (almeno) due approcci per risolvere il problema:
- per risolverlo in modo completo, informaticamente ineccepibile, si devono utilizzare complessi algoritmi di congruenza lineare (Mersenne Twister, ecc..)
- per risolverlo "alla buona", puoi usare l'algoritmo del mazzo di carte: immaginando di dover generare numeri da 1 a N, metti in un array i numeri in ordine ( X(i)=i ), poi esegui un certo numero di "smazzate" (generi 2 numeri compresi tra 1 e N con il semplice (1+Int(Rnd*N)) e scambi i due numeri presenti in quelle due posizioni).
Quando hai estratto tutti gli N numeri devi nuovamente mischiare il "mazzo" !
....Prova !