giovedì 12 novembre 2009

Simulazione lancio di un dado (java)

L'esercizio consiste nel simulare il lancio di un dado e nel produrre in output il numero dei lanci che sono stati necessari affinché esca la stessa faccia per 5 lanci consecutivi.

La simulazione del lancio,si ottiene utilizzando la classe Math.random(); che genera un numero casuale(se non ricordo male un double) compreso tra 0 ed 1. moltiplichiamo il valore per il numero delle possibilità che vogliamo ottenere(nel nostro caso il numero delle facce del dado, 6 in tutto)ed effettuiamo il casting ad "(int)" in modo tale da approssimare il valore ad un intero.
A questo punto i risultati saranno: 0 1 2 3 4 5
Siccome a noi interessano i valori da 1 a 6, sommiamo 1 al valore ottenuto.

per il resto il codice è il seguente:

  1. /*

  2. Questo programma simula il lancio di un dado e conta il numero delle estrazioni

  3. necessarie affinche' esca 5 volte lo stesso numero. Il risultato ovviamente varia di volta in volta!

  4. */

  5. public class Fiverand

  6. {

  7.     public static void main (String[] args)

  8.     {

  9.         int c = 0;

  10.         int temp = 0;

  11.         int n = 0;

  12.         do

  13.         {

  14.             c++;

  15.             int lancio = (int)((Math.random())*6+1);//lancio del dado

  16.                    

  17.             if (temp == lancio)//conteggio quante volte è uscito lo stesso numero

  18.             {

  19.                 n++;

  20.             }

  21.             else // azzero il conteggio

  22.             {

  23.                 n=1;

  24.                 temp = lancio;

  25.             }

  26.             System.out.println(c + " = " + lancio);// stampo il numero dell'estrazione ed il numero estratto

  27.         }

  28.         while (n!=5);   //il ciclo si ripete finchè il conteggio e' diverso da 5   

  29.            

  30.         System.out.println("Sono stati necessari " + c + " lanci del dado per ottenere 5 estrazioni consecutive di  un numero, ed il numero e' stato: "  + temp ); 

  31.     }

  32. }



esso produrrà in output tutte le estrazioni effettuate ed infine la stringa che ci indica il numero delle estrazioni avvenute ed il numero "fortunato"

Alla prossima!

Potete trovare tutti i miei programmi quì.

2 commenti:

  1. Questo commento è stato eliminato da un amministratore del blog.

    RispondiElimina
  2. ho eliminato il commento sopra per rispetto nei confronti di andil in quanto conteneva il suo indirizzo e-mail...

    meglio evitare di rendere pubblici i proprio dati ;-p

    RispondiElimina