3. Aplicaciones y Simulaciones con Probabilidad

numpy/numpy-aplicado-parte4
@Lautaroff 04-03-2025

3.1 Simulación del Lanzamiento de una Moneda (Cara o Cruz)

Forma 1: Usando python base

import random

n = int(input('Ingrese la cantidad de simulaciones o lanzamientos: '))
cara = 0
cruz = 0

for _ in range(n):
    resultado = random.random()  # Valor entre 0 y 1
    if resultado < 0.5:
        cara += 1
    else:
        cruz += 1

prom_cara = cara / n
prom_cruz = cruz / n

print(f'Probabilidad de sacar CARA: {prom_cara}')
print(f'Probabilidad de sacar CRUZ: {prom_cruz}')

Forma 2: Versión Compacta con NumPy

m = int(input('Ingrese la cantidad de simulaciones o lanzamientos: '))
lanzamientos = np.random.randint(0, 2, m)

probabilidad_cara = np.sum(lanzamientos == 0) / m
probabilidad_sello = np.sum(lanzamientos == 1) / m

print(f"Probabilidad de cara: {probabilidad_cara:.2f}")
print(f"Probabilidad de sello: {probabilidad_sello:.2f}")

Explicación: Se simulan lanzamientos de moneda y se calculan las probabilidades para cada resultado.

3.2 Simulación del Lanzamiento de un Dado Equilibrado

Ejemplo:

m = int(input('Ingrese la cantidad de intentos: '))
lanzamientos = np.random.randint(1, 7, m)

probabilidad_2 = np.sum(lanzamientos == 2) / m
probabilidad_3 = np.sum(lanzamientos == 3) / m
probabilidad_5 = np.sum(lanzamientos == 5) / m

print(f"Probabilidad de 2: {probabilidad_2:.2f}")
print(f"Probabilidad de 3: {probabilidad_3:.2f}")
print(f"Probabilidad de 5: {probabilidad_5:.2f}")

Explicación: Se simulan lanzamientos de un dado de 6 caras y se calculan las probabilidades de obtener ciertos números.

3.3 Simulación del Lanzamiento de un Dado No Equilibrado

Ejemplo:

m = int(input("Ingrese la cantidad de intentos: "))
numeros = [1, 2, 3, 4, 5, 6]
probabilidades = np.array([2, 2, 1, 1, 1, 1]) / 8  # Suma = 8

lanzamientos = np.random.choice(numeros, size=m, p=probabilidades)

probabilidad_2 = np.sum(lanzamientos == 2) / m
probabilidad_3 = np.sum(lanzamientos == 3) / m
probabilidad_5 = np.sum(lanzamientos == 5) / m

print(f"Probabilidad de 2: {probabilidad_2:.2f}")
print(f"Probabilidad de 3: {probabilidad_3:.2f}")
print(f"Probabilidad de 5: {probabilidad_5:.2f}")

Explicación: Se simulan lanzamientos de un dado con probabilidades modificadas para obtener ciertos resultados.

3.4 Simulación del Juego Piedra, Papel o Tijera

Ejemplo:

N = int(input("Ingrese el número de jugadas: "))
opciones = ['piedra', 'papel', 'tijera']
elecciones = np.random.choice(opciones, size=N)

prob_piedra = np.sum(elecciones == 'piedra') / N
prob_papel = np.sum(elecciones == 'papel') / N
prob_tijera = np.sum(elecciones == 'tijera') / N

print(f"Probabilidad de 'piedra': {prob_piedra:.2f}")
print(f"Probabilidad de 'papel': {prob_papel:.2f}")
print(f"Probabilidad de 'tijera': {prob_tijera:.2f}")

Explicación: Se simulan jugadas de “piedra, papel o tijera” y se calculan las probabilidades de cada opción.

Lección Anterior Curso Siguiente Lección