Como fazer esse exercício? Nao estou conseguindo

3 respostas
S

Implemente a classe Dado, que tem a seguinte interface:
void jogar(); int face();
Use a classe Dado para estimar a probabilidade de, em 10 jogadas, 5 ou mais vezes tenha se obtido a face “6”. Math.random() retorna um número pseudo-randômico na faixa 0 <= x <1.

Alguem poderia me ajudar?
Obrigado

3 Respostas

T

Atenção - entenda o código, altere o nome de algumas variáveis, e ponha os comentários.

Além disso, complete a última linha, para imprimir o valor da probabilidade estimada. :stuck_out_tongue:

class Dado {
    private int resultado;
    
    public void jogar() {
        resultado = (int) (Math.random() * 6) + 1;
    }
        
    public int face() {
        return resultado;
    }
}

public class TesteDado {
    
    Dado d = new Dado();
    
    /**
     * Retorna true se em 10 jogadas, 5 ou mais vezes se obteve a face 6.
     */
    public boolean teste10jogadas() {
        int nFaces6 = 0;
        for (int i = 0; i < 10; ++i) {
            d.jogar();
            if (d.face() == 6) {
                nFaces6 = nFaces6 + 1; 
            }
        }
        return nFaces6 >= 5;
    }
    public static void main(String[] args) {
        TesteDado td = new TesteDado();
        int total = 0;
        for (int i = 0; i < 1000000; ++i) {
            if (td.teste10jogadas()) {
                total = total + 1;
            }
        }
        System.out.println (.....
    }
}
Deise2007

Oi Thingol, eu aqui de novo em mais uma dificuldade tmb nesse programinha ! Preciso de ajuda !!
Pelo o que eu entendi, esse programa retorna o valor boolean true se em 10 jogadas, a face 6 aparecer 5 ou mais vezes e false, se contrário, certo?
Tá, acontece que eu gostaria que o resultado não fosse com uma saída do tipo boolean e sim que aparecesse a probabilidade em número, no caso sendo inteiro?
O que acontece, eu executei esse programa e na linha de saída (System.out.println) eu completei com (dt.teste10jogadas()) e imprimiu FALSE, depois coloquei (total) e imprimiu 0, por fim coloquei (dt.face()) e imprimiu 0.

Bem, queria saber se alguma dessas saídas estão certas ? Se alguma delas estiverem certas, o False que saiu significa que a probabilidade foi menor que 5 ? Os 0 que sairam significam que não existi probabilidade?

Na classe Dado, eu tive que colocar mais um () na linha do Math.random() assim: resultado = (int) ((Math.random() * 6) + 1), pois sem estava dando erro. Está certo ?

Me ajude(m) por favor !!! :frowning:

Deise2007

:shock:

Criado 16 de junho de 2006
Ultima resposta 12 de set. de 2007
Respostas 3
Participantes 3