es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo resumir los resultados de probabilidad que obtuve con un bucle? (Java)

Estoy preguntándome si hay alguna manera de resumir los resultados de probabilidad que obtuve mediante un bucle. ¿Así puedo saber cuántos éxitos hubo, de un número x de intentos? En este momento, solo obtengo una secuencia de afirmaciones 1 o 0 (1 para un éxito, 0 para fallar), no muy práctico. Se ve así:

public class doGry {
public static void main(String[] args ) {
    for (int i = 0; i < 50; i++) {
        // chance to hit (h) = 35% + (ma - md)
        // 8% < h < 90%
        double ma = 20;
        double md = 10;
        double probability;

        System.out.println("probabilidad de éxito " + (probability = 35 + (ma - md)));

        double probab2 = probability / 100;
        double r = Math.random();

        int roll;
        if (r <= probab2) roll = 1;
        else roll = 0;
        System.out.println(roll);


    }

}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de resumir los resultados de la probabilidad utilizando bucles en Java. Puede crear una variable de contador fuera del bucle e incrementarla cada vez que haya un acierto (cuando “roll” sea igual a 1). Luego, después de que finalice el bucle, puede imprimir el número total de aciertos exitosos junto con el número total de intentos. Aquí hay un ejemplo:

    public class doGry {
        public static void main(String[] args ) {
            double ma = 20;
            double md = 10;
            double probability;
    
            int successfulHits = 0;
            for (int i = 0; i < 50; i++) {
                // chance to hit (h) = 35% + (ma - md)
                // 8% < h < 90%
                System.out.println("Intento " + (i+1));
                System.out.println("Probabilidad de éxito: " + (probability = 35 + (ma - md)));
    
                double probab2 = probability / 100;
                double r = Math.random();
    
                int roll;
                if (r <= probab2) roll = 1;
                else roll = 0;
                System.out.println("Resultado: " + roll);
    
                if (roll == 1) {
                    successfulHits++;
                }
            }
    
            System.out.println("\nNúmero total de intentos: " + 50);
            System.out.println("Aciertos exitosos: " + successfulHits);
        }
    }
    

    Este código crea una variable llamada “successfulHits” e inicializa en 0 antes de que comience el bucle. Dentro del bucle, si el resultado es un acierto exitoso (cuando “roll” es igual a 1), la variable “successfulHits” se incrementa. Después de que el bucle finalice, se imprime el número total de intentos y aciertos exitosos.

    Tenga en cuenta que también agregué algunas declaraciones de impresión adicionales para hacer que la salida sea más informativa. La salida ahora debería verse algo como esto:

    Intento 1
    Probabilidad de éxito: 45.0
    Resultado: 0
    Intento 2
    Probabilidad de éxito: 45.0
    Resultado: 1
    Intento 3
    Probabilidad de éxito: 45.0
    Resultado: 1
    ...
    Número total de intentos: 50
    Aciertos exitosos: 19
    

Comments are closed.