Numero random non ripetitivo

maxjavamedium

Nuovo Utente
22 Dic 2020
8
0
1
Salve sò memorizzare in una variabile una serie di numeri diversi luno dagli altri ma dalla variabile come li estraggo uno alla volta premendo un pulsante?.....Mi potreste spiegare il concetto o un piccolo esempio?Grazie saluti
 
Partendo da un array con i vari numeri, ad ogni click dovresti chiamare una funzione che fa questo:
1)se la lunghezza dell'array è n, estrae un numero random k compreso tra 0 e n-1, che indice l'indice dell'elemento scelto
2) stampa l'elemento con indice k
3) rimuove dall'array l'elemento con indice k, e riducendo così la lunghezza dell'array di 1.
Non conosco bene Java, ma provo a farti una scaletta:
Codice:
int[] arr = { 10, 12, 34, 45, 23,38 }; //metto numeri random nell'array
bottone.setOnClickListener(new OnClickListener() { //quando si clicca sul pulsante
        @Override
        public void onClick(View v) {    
             int indiceRandom = (int)(Math.random()*arr.length);
              System.out.println( "numero selezionato:"+arr[indiceRandom]);
             rimuovi(arr, indiceRandom); //richiamo la funzione per eliminare l'elemento
        }
    });   

//creo la funzione per rimuovere l'elemento (l'ho presa da un sito ma penso funzioni)

public static int[] rimuovi(int[] arr, 
                                          int indice) 
    { 
        if (arr == null
            || index < 0
            || index >= arr.length) { 
  
            return arr; 
        } 
        int[] anotherArray = new int[arr.length - 1]; 
        for (int i = 0, k = 0; i < arr.length; i++) { 
            if (i == index) { 
                continue; 
            } 
            anotherArray[k++] = arr[i]; 
        } 
        return anotherArray; 
    }
 

Discussioni simili