Ciao ragazzi.
Sto ancora cercando di capire fino in fondo gli array e i vettori.
In questo esercizio devo creare una semplice classe che mi dia la permutazione casuale di n numeri, senza che ve ne siano due uguali.
Ecco la mia classe
Tuttavia c'è qualcosa di sbagliato in questa classe...il problema è che non riesco a capire cosa!!codice:import java.util.Random; public class Permutation { public Permutation(int aRange) { numbers = new int[aRange]; } public int[] nextPermutation() { //Creo una classe con la stessa lungezza di numbers riempita di numeri da 1 a aRange int[] sortedNumbers = new int[numbers.length]; for (int i=0; i < sortedNumbers.length; i++) sortedNumbers[i] = i+1; Random generator = new Random(); int tempRange = numbers.length; for(int i = 0; i < numbers.length; i++) { int c = generator.nextInt(tempRange); System.arraycopy(sortedNumbers, c, numbers, i, 1); System.arraycopy(sortedNumbers, c+1, sortedNumbers, c, tempRange - c - 1); tempRange--; } return numbers; } private int[] numbers; }
Ho provato ad eseguire anche manualmente il ciclo for...dovrebbe trovarsi, ma così non è.
Qualcuno potrebbe aiutarmi a capire dov'è l'errore??
Grazie infinite a tutti!
gl

Rispondi quotando
...dovrei ottenere dei numeri da 1 a n senza che si ripetono...per esempio se n = 10, una soluzione potrebbe essere