PDA

View Full Version : Funzione Random in C


Zittino Bob
10-11-2004, 20:27
Ciao a tutti, qualcuno di voi ha idea di come si faccia la generazione random di numeri compresi tra un certo range senza ripetizione dei numeri?

Per il momento sono arrivato a questo:

....
....
....

srand((unsigned)time(0));

for (i=1;i<n+1;i++)
{

num=rand()%n;

vett[i+1]=num;

printf("%d\n",vett[i]);
}

Ma per evitare la ripetizione di un numero precedentemente generato come faccio?

ilsensine
10-11-2004, 21:29
Non puoi, tramite solamente rand. Una sequenza di numeri non ripetuti (in sostanza, una permutazione) non può essere una sequenza scorrelata, quindi neanche propriamente casuale.

Zittino Bob
10-11-2004, 23:23
Penso proprio che dovrò implementare un ciclo for facendo controllare volta per volta i valori generati con quelli precedenti.
Mi sembra l'unica cosa da fare a sto punto..

ilsensine
11-11-2004, 12:21
Dovresti creare un array di n elementi, estrarne uno a caso, ridurre l'array togliendo l'elemento rimosso. E' una possibile soluzione, dipende da quanto sono "tanti" i numeri che devi generare.

Zittino Bob
11-11-2004, 14:05
Il numero dei valori da generare viene da input, e comunque con un define Max 1000..
Adesso vedrò ke posso fare..

cionci
11-11-2004, 15:28
Edit: la distrubuzione del codice che ti avevo messo non è corretta...