Esercizio lancio moneta

di il
2 risposte

Esercizio lancio moneta

Ciao a tutti, sto cercando di portare a termine un breve e semplice programma ma non sono sicuro se ho interpretato bene la consegna dell'esercizio. Ve lo riporto di seguito:

Utilizzando il metodo nextBoolean della classe Random, scrivete un'applicazione che simuli una sequenza di lanci di moneta dove il numero di lanci viene inserito preliminarmente dall'utente. Calcolate via via la percentuale di lanci che forniscono come risultato "testa" e la percentuale di lanci che forniscono come risultato "croce". Al crescere del numero di lanci le due percentuali dovrebbero stabilizzarsi intorno al 50%.

Io l'ho realizzato in questo modo (le classi ConsoleInputManager e ConsoleOutputManager sono tratte dalla libreria del libro, servono semplicemente per prendere l'input dell'utente e realizzare la stampa su monitor):

package esercizi;

import java.util.Random;

import prog.io.*;

public class Esercizio332 {

public static void main(String[] args) {
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();

double nLanci = in.readDouble("Quante volte vuoi lanciare la moneta? ");
Random r = new Random();
int testa = 0;
int croce = 0;

for(int i = 0; i < nLanci; i++) {

boolean ris = r.nextBoolean();

if (ris == true) {
testa = testa + 1;
out.println("Testa");
}

else {
croce = croce + 1;
out.println("Croce");
}
}

double probTesta = testa/nLanci*100;
double probCroce = croce/nLanci*100;

out.println("Probabilità testa: " + probTesta + "%");
out.println("Probabilità croce: " + probCroce + "%");
}

}

Secondo voi è corretto?
Grazie a tutti in anticipo!

2 Risposte

  • Re: Esercizio lancio moneta

    QUASI!

    FORMATTA IL CODICE con il button </>
    
    double nLanci = in.readDouble("Quante volte vuoi lanciare la moneta? ");
    
    Stai dicendo che l'utente PUO' DECIDERE di lanciare 3.14159 26535 volte, oppure 2.71828 18285 volte la moneta?????
    
    if (ris == true) 
    
    POICHE' 'ris' e' una variabile booleana, puo' assumere SOLO i valori "true" e "false". Quindi tu stai chiedendo se "true" e' uguale a "true". Ma va!!!!!
    E' come dire che la ragazza bionda carina e' bionda e carina. Ma va!!!!
    
    double probTesta = testa/nLanci*100;
    
    QUI c'e' un trucco per far si che l'espressione sia di tipo float e non di tipo intero
    
    double probTesta = 100.0*testa/nLanci;
    
  • Re: Esercizio lancio moneta

    Grazie mille per le correzioni e gli utili suggerimenti, in effetti ora ha tutto molto più senso
Devi accedere o registrarti per scrivere nel forum
2 risposte