L'unico algoritmo funzionante che sono riuscito a produrre è questo:
codice:
import java.util.Random;
public class Prova
{
public static void main(String[] args)
{
Random generator = new Random();
int[] data = new int[10];
for (int n = 0; n < data.length; n++)
{
int randomNumber = 1 + generator.nextInt(10);
while (randomNumber == data[0] || randomNumber == data[1] ||
randomNumber == data[2] || randomNumber == data[3] ||
randomNumber == data[4] || randomNumber == data[5] ||
randomNumber == data[6] || randomNumber == data[7] ||
randomNumber == data[8] || randomNumber == data[9])
{
randomNumber = 1 + generator.nextInt(10);
}
data[n] = randomNumber;
}
for (int e : data)
{
System.out.print(e + " ");
}
}
}
Ma sono sicuro esista un algoritmo più efficiente, sarebbe impensabile applicare questo codice ad array di lunghezza 100 o 1000!