Visualizzazione dei risultati da 1 a 5 su 5

Discussione: numeri casuali

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    10

    numeri casuali

    Ho notato con questo pezzo di codice:

    codice:
    		for(j=0;j<100;j++){
    		
    		for(i=0;i<3;i++)casse[i]=false;
    		
    		Random randomGenerator = new Random();
            randomInt = randomGenerator.nextInt(3);
    		casse[randomInt]=true; //scatola vincente presa a caso
    		
    		System.out.println("randomInt:" + randomInt);
    		
    		randomGenerator = new Random();
            vecchiascatola = randomGenerator.nextInt(3); //scegliamo una scatola a caso
            
    		System.out.println("vecchiascatola: " + vecchiascatola);
    		
    		do{   //scarta a caso una cassa vuota tra le due false che non sia quella scelta
    			randomGenerator = new Random();
                randomInt = randomGenerator.nextInt(3);
                if(!casse[randomInt] && randomInt!=vecchiascatola)break;
    		}while(true);
    		
    			
    		//randomInt e' la scatola scartata, vecchiascatola e' la scatola che avevamo scelto prima.
    		for(i=0;i<3;i++)
    			if(i!=randomInt && i!=vecchiascatola)break;
    			
    
    		//ora i e' la nuova scatola scelta
    		if(casse[i])successi++;
    		
    	}
    Le variabili randomInt e vecchiascatola assumono ad ogni ciclo lo stesso valore tra di loro, qualcuno mi può spiegare il perché?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    L'oggetto randomGenerator istanzialo fuori da tutti i cicli.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    10
    Funziona!!!!!
    Grazieeeeeee

    Con il Java ho appena iniziato quindi un bel po' di cosette devo ancora impararle

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da eafkuor
    Funziona!!!!!
    Grazieeeeeee

    Con il Java ho appena iniziato quindi un bel po' di cosette devo ancora impararle
    Prego ^^

    Ti spiego da cosa era causato il 'problema'. Il costruttore senza argomenti di Random (quello che hai usato te) utilizza l'istante temporale corrente come 'seme' per iniziare a generare numeri 'pseudocasuali'.

    Tu hai messo il costruttore all'interno di un ciclo; questo comporta che il generatore venga reinizializzato continuamente. E dato che l'esecuzione di una iterazione del tuo ciclo è praticamente istantanea, Random veniva inizializzato utilizzando praticamente lo stesso 'istante temporale' dell'iterazione precedente.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    10
    Si avevo immaginato una cosa del genere
    Ti ringrazio

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 © 2026 vBulletin Solutions, Inc. All rights reserved.