View Full Version : [C] generare numeri casuali senza ripetizioni
Salve, dovrei generare 4 numeri casuali, evitando le ripetizioni, da 0 a 13. Io avevo pensato alla funzione "rand() % 14", solo che per evitare le ripetizioni dovrei controllare prima il valore che mi ritorna con il valore delle altre 3 variabili (uscite in precedenza)...però mi stò un po perdendo e non sò bene come fare!! anche perchè all'inizio tutte le altre variabili valgono 0... :confused:
mi date un aiutino?? :D
la prima cosa che mi viene in mente è di memorizzare i numeri usciti in un array ed ogni volta che "estrai" un numero andare a controllare con un ciclo for che non sia uscito...
concettualmente devi creare una permutazione. prepara un array da 14 locazioni in cui la locazione i-esima (i da 0 a 13) contiene il numero i; dopodiché estrai più volte coppie di posizioni casuali con rand e scambia i numeri delle posizioni estratte. se la funzione di estrazione random è distribuita uniformemente ti saranno sufficienti 14 swap.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.