CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 29 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Creare numeri Random sempre diversi

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jan 2013
    Messaggi
    18

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Creare numeri Random sempre diversi

    Ciao ragazzi ho questo problema devo creare TOT numeri random diversi tra loro..ho provato cosi ma mi restituisce anche numeri uguali..non so come fare!

    codice:
    //metodi per le combianazioe
        public String[] createCombination(){
        	//creo la combinazione e la inserisco nell array combinazione
        	
        	String[] colors = {"rosso","bianco","azzurro","arancione","blu","verde","viola","grigio","nero","giallo"};
        	
        	//creo la combinazione casuale
        	int cr = 130;
        	for (int c = 0; c<Integer.parseInt(spazi); c++){
        		
        		int r = (int)(Math.random()*Integer.parseInt(colori));
        		while (r == cr){
        			 r = (int)(Math.random()*Integer.parseInt(colori));
        		}
        		combinazione[c] = colors[r];
        		cr = r;
        		
        	}
        	return combinazione;
        }

    Ho notato che i colori si ripetono solo gli ultimi 2 o 3 quindi per i primi funziona poi non funziona più..
    Ultima modifica di dvdciri; 15-02-13 alle 16:03

  2.  
  3. #2
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Il codice non è molto chiaro perché ci sono variabili che vengono da fuori...
    A occhio sembra che tu voglia mescolare casualmente l'array colors mettendo il risultato nell'array combinazione, giusto?
    Se è così l'errore sta nel fatto che tu confronti ogni numero casuale generato con quello immediatamente precedente (memorizzato in cr), mentre in realtà dovresti controllare tutta la sequenza precedente per evitare doppioni.

    Per risolvere ci possono essere tanti modi, ma secondo me il modo più semplice è utilizzare un ArrayList di String e poi usare il metodo shuffle della classe Collections (package java.util). Tanto poi ci sono metodi per passare da array ad ArrayList e viceversa molto facilmente.

  4. #3
    Baby Droid


    Registrato dal
    Jan 2013
    Messaggi
    18

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ottimo grazie mille 5 secondi prima che mi rispondessi ho risolto con un arrayList però ho fatto un casino assurdo ma son riuscito..NON SAPEVO SI POTESSE MESCOLARE ANCH LE STRINGE =(
    va bhe ho fatto cosi:

    codice:
    //creo la combinazione e la inserisco nell array combinazione
        	
        	String[] colors = {"rosso","bianco","azzurro","arancione","blu","verde","viola","grigio","nero","giallo"};
        	
        	//creo una lista di tutti i numero ordinati,
        	ArrayList<Integer> array = new ArrayList<Integer>();
        	for (int i = 0; i < Integer.parseInt(colori); i++) {
        		    array.add(i);
        	}
        	Collections.shuffle(array); // mescolo la lista
        	
        	//prendo dalla lista tot numeri a caso
        	for (int c = 0; c<Integer.parseInt(spazi); c++){   		
        		combinazione[c] = colors[array.get(c)];
        	}
    Perchè l problema era che io da es questi numeri 012345 devo prelevare 4 numeri diversi..
    Quindi come ho fatto io creo la lsta con 012345 poi li shuffle 312504 e prendo i primi 4 numeri 3 1 2 5..anche se non è proprio bello però funziona =)

  5. #4
    Baby Droid


    Registrato dal
    Jan 2013
    Messaggi
    18

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Puoi darmi una mano anche con questo problema?

    Io per settare da java il background drawable a una texBox faccio cosi:

    codice:
    Drawable d = P[0].getBackground(); //qui prendo il background di un altro elemento
    textBox.setBackgroundDrawable(d); //qui lo setto alla mia textBox
    Ma se volessi prende il nome di quel Drawable (che in questo caso si chiama "rosso", quindi in xml @drawable/rosso) CEOM POSSO FARE?

    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy