Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18

    Array di 10 numeri casuali diversi tra loro

    Non riesco a trovare il giusto algoritmo per inserire in un array di lunghezza 10 10 numeri casuali diversi tra loro. Qualcuno saprebbe aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: Array di 10 numeri casuali diversi tra loro

    Originariamente inviato da Ghneuma
    Non riesco a trovare il giusto algoritmo per inserire in un array di lunghezza 10 10 numeri casuali diversi tra loro. Qualcuno saprebbe aiutarmi?
    scusa fai un controllo ogni volta che generi un numero casuale scorrendo il vettore e se trovi un numero uguale ripeti la generazione :master:

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    18
    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!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Ghneuma
    Ma sono sicuro esista un algoritmo più efficiente
    Certo. Ecco un esempio:

    codice:
    import java.util.*;
    
    public class Prova
    {
        public static void main (String[] args)
        {
            int[] numeri = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            int size = numeri.length;
            
            Random r = new Random ();
    
            while (size > 0)
            {
                int idx = r.nextInt (size);
                
                System.out.println ("Estratto numero: " + numeri[idx]);
    
                numeri[idx] = numeri[--size];
            }
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.