Entra

View Full Version : [Java] Generatore di numeri casuali


:: /\MD ::
29-10-2004, 16:08
premettendo che sono un newbie e che sto facendo qualche esercizio per mio diletto.. volevo porre alla vostra attenzione questo algoritmo che genera numeri casuali:

[testo dell'esercizio: NumeroCasuale.java
L'output deve essere XXX-XXX-XXXX, il primo gruppo di tre cifre non può contenere un 8 o un 9,
mentre il secondo gruppo di tre cifre non deve , complessivamente essere maggiore di 742. Suggerimento:
riflettete sul modo più semplice di costruire il numero, non dovete necessariamente costruire il numero cifra
per cifra]

ecco come ho pensato di svolgerlo io:



import java.util.Random;
public class Keygen
{
public static void main (String[] args)
{
Random generator = new Random();

int num1a, num1b, num1c, num3, num4;
num1a = generator.nextInt(8);
num1b = generator.nextInt(8);
num1c = generator.nextInt(8);

num3 = generator.nextInt(743-100) + 100;

num4 = generator.nextInt(10000-1000) + 1000;

System.out.print("" + num1a + num1b + num1c + "-" + num3 + "-" + num4);
}
}

Esistono modi migliori, più 'rapidi' o performanti di quello che ho usato io? mi rimetto alla vostra esperienza :P

kingv
29-10-2004, 19:26
mi sembra corretto il primo (e giusto il procedimento) ma il secondo e il terzo gruppo non rispondono ai requisiti.


col procedimento che usi tu il secondo gruppo non puo' essere minore di 100 e il terzo non puo' essere minore di 1000

:: /\MD ::
30-10-2004, 11:03
è vero.. che scemo :P

quindi dovrei fare una cosa del genere?

num3 = generator.nextInt(743);
if (num3 < 10)
num3a = new String("00" + num3);
else
if (num3 < 100)
num3a = new String("0" + num3);
else
num3a = new String("" + num3);

nell'output del programma poi andrei a richiamare la stringa "num3a" per il secondo gruppo di numeri