|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
[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...
mi date un aiutino??
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
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...
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
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.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:48.



















