Hola, al momento de hacer la probabilidad me da “0.0”, mi código es el siguiente: <code>import random def tirar_dado(numero_de_tiros): ...

Diego Alejandro Muñoz Camayo

Diego Alejandro Muñoz Camayo

Pregunta
studenthace 5 años

Hola, al momento de hacer la probabilidad me da “0.0”, mi código es el siguiente:

import random def tirar_dado(numero_de_tiros): secuencia_de_tiros = [] secuencia_de_tiros2 = [] for _ in range(numero_de_tiros): tiro = random.choice([1, 2, 3, 4, 5, 6]) tiro2 = random.choice([1, 2, 3, 4, 5, 6]) secuencia_de_tiros.append(tiro) secuencia_de_tiros2.append(tiro2) return secuencia_de_tiros, secuencia_de_tiros2 def main(numero_de_tiros, numero_de_intentos): tiros = [] tiros2 = [] for _ in range(numero_de_intentos): secuencia_de_tiros = tirar_dado(numero_de_tiros) tiros.append(secuencia_de_tiros) secuencia_de_tiros2 = tirar_dado(numero_de_tiros) tiros2.append(secuencia_de_tiros2) tiros_con_dado_1 = 0 for tiro in tiros: if 6 in tiro: tiros_con_1 += 1 tiros_con_dado_2 = 0 for tiro2 in tiros2: if 6 in tiro2: tiros_con_1 += 1 probabilidad_tiros_con_1 = tiros_con_dado_1 / numero_de_intentos * tiros_con_dado_2 /numero_de_intentos print(f'Probabilidad de obtener por lo menos un 12 en {numero_de_tiros} tiros = {probabilidad_tiros_con_1}') if __name__ == '__main__': numero_de_tiros = int(input('Cuantos tiros del dado: ')) numero_de_intentos = int(input('Cuantos veces correra la simulación: ')) main(numero_de_tiros, numero_de_intentos)
6 respuestas
para escribir tu comentario
    Diego Alejandro Muñoz Camayo

    Diego Alejandro Muñoz Camayo

    studenthace 4 años

    Tuve que cambiar la estructura del código por que la función tirar dado esta mal diseñada, si realizas un print a "tiros" y "tiros2" encuentras los errores que hablo, yo lo estructure así:

    import random def tirar_dado(numero_de_tiros): secuencia_de_tiros = [] for _ in range(numero_de_tiros): tiro = random.randint(1, 6) secuencia_de_tiros.append(tiro) return secuencia_de_tiros def tirar_dado2(numero_de_tiros): secuencia_de_tiros2 = [] for _ in range(numero_de_tiros): tiro2 = random.randint(1, 6) secuencia_de_tiros2.append(tiro2) return secuencia_de_tiros2 def main(numero_de_tiros, numero_de_intentos): tiros = [] tiros2 = [] sumatiros = [] for _ in range(numero_de_intentos): secuencia_de_tiros = tirar_dado(numero_de_tiros) tiros.append(secuencia_de_tiros) for _ in range(numero_de_intentos): secuencia_de_tiros2 = tirar_dado2(numero_de_tiros) tiros2.append(secuencia_de_tiros2) print(f'El tiro 1 es {tiros}') print(f'El tiro 2 es {tiros2}') #sumar las listas for i in range(len(tiros)): sumatiros.append(tiros[i] + tiros2[i]) print(sumatiros) tiros_con_1 = 0 for tiro in sumatiros: if 12 in tiro: tiros_con_1 += 1 print(tiros_con_1) probabilidad_tiros_con_1 = tiros_con_1 / numero_de_intentos print(f'Probabilidad de obtener por lo menos un 6 en {numero_de_tiros} tiros = {probabilidad_tiros_con_1}') if __name__ == '__main__': numero_de_tiros = int(input('Cuantas tiros del dado: ')) numero_de_intentos = int(input('Cuantas veces correra la simulacion: ')) main(numero_de_tiros, numero_de_intentos)

    Sin embargo, aún tengo un error y es que al momento de sumar los valores de las listas se concatenan, estoy pensando como solucionarlo.

    Saludos

    Hans Garibaldi

    Hans Garibaldi

    studenthace 4 años

    A mí me sucede lo mismo, ¿lo resolviste?

    Sebastián Andrade

    Sebastián Andrade

    studenthace 5 años

    He mirado un poco el codigo y lo qque creo que pasa es que la lista tiros esta en si llena de otras listas que son secuencias de tiros entonces revisa los bucles en los cuales iteras por ellas a ver

    Diego Alejandro Muñoz Camayo

    Diego Alejandro Muñoz Camayo

    studenthace 5 años

    Hola muchas gracias no había notado ese error, aunque la probabilidad sigue arrojando 0.0, puse un round y dividí las operaciones pero el error persiste

    import random def tirar_dado(numero_de_tiros): secuencia_de_tiros = [] secuencia_de_tiros2 = [] for _ in range(numero_de_tiros): tiro = random.choice([1, 2, 3, 4, 5, 6]) tiro2 = random.choice([1, 2, 3, 4, 5, 6]) secuencia_de_tiros.append(tiro) secuencia_de_tiros2.append(tiro2) return secuencia_de_tiros, secuencia_de_tiros2 def main(numero_de_tiros, numero_de_intentos): tiros = [] tiros2 = [] for _ in range(numero_de_intentos): secuencia_de_tiros = tirar_dado(numero_de_tiros) tiros.append(secuencia_de_tiros) secuencia_de_tiros2 = tirar_dado(numero_de_tiros) tiros2.append(secuencia_de_tiros2) tiros_con_dado_1 = 0 for tiro in tiros: if 6 in tiro: tiros_con_dado_1 += 1 tiros_con_dado_2 = 0 for tiro2 in tiros2: if 6 in tiro2: tiros_con_dado_2 += 1 probabilidad_tiros_con_1 = round(tiros_con_dado_1 / numero_de_intentos, 5) probabilidad_tiros_con_2 = round(tiros_con_dado_2 /numero_de_intentos,5) probabilidad_final = round(probabilidad_tiros_con_1 * probabilidad_tiros_con_2, 5) print(f'Probabilidad de obtener por lo menos un 12 en {numero_de_tiros} tiros = {probabilidad_final}') if __name__ == '__main__': numero_de_tiros = int(input('Cuantos tiros del dado: ')) numero_de_intentos = int(input('Cuantos veces correra la simulación: ')) main(numero_de_tiros, numero_de_intentos)
    Sebastián Andrade

    Sebastián Andrade

    studenthace 5 años

    haya **

    Sebastián Andrade

    Sebastián Andrade

    studenthace 5 años

    Hola diego, creo que tu problema esta aqui

    tiros_con_dado_1 = 0 for tiro in tiros: if6in tiro: tiros_con_1 += 1 tiros_con_dado_2 = 0 for tiro2 in tiros2: if6in tiro2: tiros_con_1 += 1

    corrigelo de la siguiente manera, tienes un problema con las variables

    tiros_con_dado_1 = 0 for tiro in tiros: if6in tiro: tiros_con_dado_1 += 1 tiros_con_dado_2 = 0 for tiro2 in tiros2: if6in tiro2: tiros_con_dado_2 += 1

    Si te fijas pusiste "tiros_con_1" y el nombre de la variable era "tiros_con_dado_1"

    espero ese halla sido el problema y haberte ayudado

Curso de Estadística Computacional con Python

Curso de Estadística Computacional con Python

Domina la estadística computacional usando Python para analizar datos, realizar simulaciones y calcular probabilidades. Aprende a aplicar técnicas de inferencia estadística y a desarrollar simulaciones de Monte Carlo.

Curso de Estadística Computacional con Python
Curso de Estadística Computacional con Python

Curso de Estadística Computacional con Python

Domina la estadística computacional usando Python para analizar datos, realizar simulaciones y calcular probabilidades. Aprende a aplicar técnicas de inferencia estadística y a desarrollar simulaciones de Monte Carlo.