Random di numeri multipli

di il
7 risposte

Random di numeri multipli

Ciao,
come faccio a generare numeri multipli utilizzando la classe Random?

Ad esempio, so che per generare numeri casuali all'interno di un intervallo specifico si può fare in questo modo:

Set<Integer> numeriRandom = new HashSet<>();
Random n = new Random();
//Se voglio 10 numeri
for(int k = 1; k <= 10; k++) {
    numeriRandom.add(generaNumeri(77,7)); //max 77, min 7
        if(numeriRandom.size()<10)
            k = 9; // per evitare che si interrompa prima di aver concluso
       }
}
private int generaNumeri(int max, int min) {
        return n.nextInt((max - min) + 1) + min;
    }    
Ma se avessi bisogno di numeri multipli, ad esempio di 6?

7 Risposte

  • Re: Random di numeri multipli

    Moltiplica per 6!
  • Re: Random di numeri multipli

    Ciao Migliorabile,
    mi sono spiegato male, in realtà vorrei dei numeri specifici.

    Ad esempio come potrei ottenere questi numeri: 6,16,26,36,46,56? Solo ed esclusivamente quei numeri, però devo poterli ricavare con una chiamata random, tipo generaRandom(min(6), max(56);

    Capito cosa intendo?

    Sì hai ragione non sono numeri multipli, in questo caso sono +10.
  • Re: Random di numeri multipli

    Basta che ottieni un valore random intero tra 0 e 5 (estremi compresi). E poi calcoli

    numrand * 10 + 6
  • Re: Random di numeri multipli

    Oppure, ti prepari un vettore con i valori che ti servono, e poi lo 'mescoli'.

    Quando lo hai usato tutto, lo 'rimescoli' e ricominci.

    Come noti, ci sono infinite possibilita'. Basta un po' di ingegno.
  • Re: Random di numeri multipli

    oregon ha scritto:


    Basta che ottieni un valore random intero tra 0 e 5 (estremi compresi). E poi calcoli

    numrand * 10 + 6
    Grazie Oregon, anche a quel simpaticone di Migliorabile.
  • Re: Random di numeri multipli

    Migliorabile, tipo una cosa del genere, ma più elegante:
    List<Integer> num = new ArrayList<>();
    		num.add(6);
    		num.add(16);
    		num.add(26);
    		num.add(36);
    		num.add(46);
    		num.add(56);
    		Collections.shuffle(num);
    		for(int i = 0; i <= 3; i++) {
    		System.out.println(num.get(i));
    		}
    Va beh, in ogni caso la cosa importate è che ho risolto...

    Ciao
  • Re: Random di numeri multipli

Devi accedere o registrarti per scrivere nel forum
7 risposte