IniziaInizia gratis

Il modulo np.random e le prove di Bernoulli

Puoi pensare a una prova di Bernoulli come al lancio di una moneta (eventualmente) sbilanciata. In particolare, ogni lancio ha probabilità \(p\) di uscire testa (successo) e probabilità \(1-p\) di uscire croce (insuccesso). In questo esercizio scriverai una funzione per eseguire n prove di Bernoulli, perform_bernoulli_trials(n, p), che restituisce il numero di successi su n prove di Bernoulli, ciascuna con probabilità di successo p. Per eseguire ogni prova di Bernoulli, usa la funzione rng.random(), che restituisce un numero casuale tra zero e uno.

Questo esercizio fa parte del corso

Pensare in modo statistico con Python (Parte 1)

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci una funzione con firma perform_bernoulli_trials(n, p).
    • Inizializza a zero la variabile n_success, il contatore dei True, cioè i successi delle prove di Bernoulli.
    • Scrivi un ciclo for in cui esegui una prova di Bernoulli a ogni iterazione e incrementi il numero di successi se il risultato è True. Esegui n iterazioni ciclano su range(n).
      • Per eseguire una prova di Bernoulli, scegli un numero casuale tra zero e uno usando rng.random(). Se il numero scelto è minore di p, incrementa n_success (usa l'operatore += 1). Un RNG è già stato istanziato come variabile rng e inizializzato con un seed.
    • La funzione restituisce il numero di successi n_success.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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
Modifica ed esegui il codice