Stavo cercando di scrivere un programmino che faccia la seguente cosa:
prendiamo tre scatole, di cui una sola è piena ma non sappiamo quale (rappresentiamo questa cosa con un array do boolean falsi tranne uno vero).

Ora scegliamo una scatola a caso. Dopodiché "scartiamo" una scatola vuota tra le due rimanenti.

Alla fine "cambiamo" scelta di scatola, e controlliamo se abbiamo scelto quella piena o no, e se è piena facciamo successi++;

Spero di essere stato abbastanza chiaro

bene, il programmino che ho fatto è questo:

codice:
import java.util.Random;

public class probCasse {
    
    public static void main(String[]x){
    
    boolean[] casse = new boolean[3];
    int i, successi=0, vecchiascatola, randomInt;
    
    for(i=0;i<=2147483647;i++){
        casse[0]=casse[1]=casse[2]=false;
        
        Random randomGenerator = new Random();
        randomInt = randomGenerator.nextInt(3);
        casse[randomInt]=true; //scatola vincente presa a caso
        
        Random randomGenerator2 = new Random();
        vecchiascatola = randomGenerator2.nextInt(3); //scegliamo una scatola a caso
        
        do{   //scarta a caso una cassa vuota tra le due false che non sia quella scelta
            randomGenerator = new Random();
            randomInt = randomGenerator.nextInt(3);
        }while(casse[randomInt] || randomInt==vecchiascatola);
        
            
        //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++;

        
    }
    
    System.out.println("Hai vinto il " + 100*successi/2147483647 + "% delle volte");
    
    }
    
}
Viene compilato senza errori, ma in esecuzione non dà nessun output, secondo me perché i numeri generati in questo modo non sono casuali al 100%.
Chi mi sa aiutare?


Grazie in anticipo