Salve gente.
avrei bisogno di creare un codice (8-10 cifre) random che sia però univoco o altamente improbabile di trovare doppioni.
il codice dovrebbe essere formato da numeri e lettere.. qualcuno ha qualcosa?
Salve gente.
avrei bisogno di creare un codice (8-10 cifre) random che sia però univoco o altamente improbabile di trovare doppioni.
il codice dovrebbe essere formato da numeri e lettere.. qualcuno ha qualcosa?
Anche la lunghezza deve essere random?
Se è così potresti fare in questo modo:
1) Crei un array con tre interi contenenti le possibili lunghezze: 8, 9, 10.
2) estrai un numero random compreso tra 0 e 2. Questo numero altro non è che l'indice di uno degli elementi dell'array delle lunghezze. Supponiamo che il numero random sia 1...allora la lunghezza sarà 9.
3) crei un array: array_lettere={'a','b',....'z'}
4) crei un altro array contentente il tipo di dato da generare: array_tipi={'num',lett'}
ripeti i seguenti passi per 9 (lunghezza del codice) cicli:
5) estrai un numero random tra 0 e 1 che identificherà il tipo di dato da estrarre
6) se il tipo di dato è 'num' estrai un numero random tra 0 e 9 ; se il tipo dato è 'lett' estrai un numero compreso tra 0 e array_lettere.length();
7) nel caso di valore numerico aggiungi questo valore alla tua stringa codice finale; nel caso di lettera vai ad estrarre da array_lettere il valore corrispondente all'indice ricavato al punto 6 e poi aggiungi la lettera al tuo codice.
Per evitare duplicati basta memorizzare i codici in una qualche struttura dati (ad esempio un Vector) e controllare che il codice generato non sia già stato generato... in questo caso ripeti il processo finchè non trovi un codice non estratto ancora. Ma visto che anche gli indici sono estratti in maniera random è raro che capiti un codice duplicato.
E' più facile a realizzarsi che a spiegarsi![]()
Al mio segnale... scatenate l'inferno!