PDA

Visualizza la versione completa : [JAVA]Sequenza numeri random


Loveday
29-04-2004, 00:40
Ciao,
ho bisogno di creare una sequenza abbastanza lunga di numeri random. Ora, come posso fare per far si che siano molto diversi tra loro? Utilizzando nextInt mi viene sempre lo stesso numero. Ho provato attraverso il seme ma non ho trovato una soluzione ottimale...qualcuno ha dei suggerimenti.

Grazie e bye!!!

Loveday

Xadoom
29-04-2004, 09:33
Ora non ricordo bene, ma non c'era qualcosa del tipo Math.Random() ?? Dai un'okkiata alle API.
:ciauz:

Therock80
29-04-2004, 13:36
int a[] = new int [90]; //istanzi un array

/* Il mio esempio da 1 a 90 tu puoi mettere quello che vuoi */

for ( int i = 1; i <= a.length; i++ ) //lo iniziallizzi
a[i-1]=i;

/* Con questa funzione lo mischi */

public void mischia ( )
{
int num;
for ( int i=0; i < a.length; i++ ){
num = ( int ) ( Math.random()* a.length );
int hold;
hold = a[i];
a[i] = a[num];
a[num] = hold;
}
}

Poi li estrai a tuo piacimento ( magari con un for ) con la certezza che siano tutti diversi

Loveday
29-04-2004, 22:26
grazie!

alesssia
30-04-2004, 02:35
La libreria Java ha una classe, Random, che implementa un generatore di numeri casuali.

Per generare numeri casuali sufficente creare un'oggetto della classe, per esempio:

numCasuale = new Random()

e poi applicare uno dei seguenti metodi:


numCasuale.nextInt(n) //intero casuale, compreso tra zero (incluso) ed n (escluso)

numCasuale.nextDouble() //numero casuale in virgola mobile compreso tra zero (compreso) e uno (escluso)


Io li ho usati spesso per le simulazioni (spesso combinati insieme) e non mi hanno mai dato problemi e hanno sempre generato numeri "abbastanza" casuali.

Loading