Io penso che il tuo problema sia già posto male in origine.
Se devi generare 40 numeri casulai compresi tra 0 e 39 (ovvero un intervallo di 40 numeri) senza ripetizioni non avrai altro che tutti i numeri da 0 a 39 però in ordine sparso.
Quindi secondo me potresti usare una delle seguenti strade:
1) riempire un vettore con i numeri da 0 e 39 e poi mischiarli (con criterio)
2) generare i numeri in sequenza (da 0 a 39) e posizionarli casualmente nel vettore (senza riscrivere posizioni già scelte)
3) creare un vettore vuoto, generare numeri casuali, verificare che il numero non è stato già generato ed inserirli in sequenza nel vettore (quello che stai cercando di fare tu)
ad ogni modo la generazione di numeri casuali prevere:
1) l'istanziamento di un Random
2) la specifica di un seme
3) la richiesta del prossimo intero casuale
quindi:
codice:Random generator = new Random(1000); generator.setSeed(System.currentTimeMillis()); for ( int i=0; i < 40; i++ ) { generator.nextInt(); }

Rispondi quotando