El módulo np.random y pruebas de Bernoulli
Puedes pensar en una prueba de Bernoulli como el lanzamiento de una moneda posiblemente sesgada. En concreto, cada lanzamiento tiene una probabilidad \(p\) de salir cara (éxito) y una probabilidad \(1-p\) de salir cruz (fracaso). En este ejercicio, escribirás una función para realizar n pruebas de Bernoulli, perform_bernoulli_trials(n, p), que devuelve el número de éxitos de n pruebas de Bernoulli, cada una con probabilidad p de éxito. Para realizar cada prueba de Bernoulli, usa la función rng.random(), que devuelve un número aleatorio entre cero y uno.
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 1)
Instrucciones del ejercicio
- Define una función con la firma
perform_bernoulli_trials(n, p).- Inicializa a cero una variable
n_success, el contador de valoresTrue, que son los éxitos de las pruebas de Bernoulli. - Escribe un bucle
fordonde realices una prueba de Bernoulli en cada iteración e incrementes el número de éxitos si el resultado esTrue. Realizaniteraciones iterando sobrerange(n).- Para realizar una prueba de Bernoulli, elige un número aleatorio entre cero y uno usando
rng.random(). Si el número que eliges es menor quep, incrementan_success(usa el operador+= 1para hacerlo). Ya se ha instanciado un RNG como la variablerngy tiene semilla.
- Para realizar una prueba de Bernoulli, elige un número aleatorio entre cero y uno usando
- La función devuelve el número de éxitos
n_success.
- Inicializa a cero una variable
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
def perform_bernoulli_trials(n, p):
"""Perform n Bernoulli trials with success probability p
and return number of successes."""
# Initialize number of successes: n_success
n_success = ____
# Perform trials
for i in ____:
# Choose random number between zero and one: random_number
# If less than p, it's a success so add one to n_success
if ____:
____
return n_success