0
votes

Simulation de probabilité

On m'a demandé de simuler si une imprimante fonctionne après chaque heure en une journée (c'est-à-dire 24 heures). Si l'imprimante fonctionne après l'heure, il a une probabilité de 90% de travail et de probabilité de 10% d'être cassée à la fin de la prochaine heure.

Si cassé, il a une probabilité de 50% de travail ou d'être enfreint la prochaine heure.

suppose une distribution uniforme aléatoire et que la première heure, l'imprimante fonctionne.

Mon code en Python est ci-dessous: xxx

Mon problème est que je ne peux pas simuler l'événement actuel en fonction de l'événement précédent, c'est-à-dire si le L'événement précédent est cassé Comment puis-je régler la probabilité de l'événement en cours à 0,5.


1 commentaires

Tout d'abord, vous pouvez faire chance = np.random.uniforme (taille = 24) au lieu de la boucle pour la boucle. Deuxièmement, pourquoi avez-vous chance à la ligne 6 tout en soi?


3 Réponses :


2
votes

Vous devez mémoriser l'état de l'imprimante à l'étape précédente (heure) et ajuster le seuil de calcul de la sortie binaire aléatoire: xxx


0 commentaires

2
votes

Vous devez définir votre table de probabilité avant, comme celui-ci:

import random

# The table above
table = [[.9,.1],[.5,.5]]

def simulate():
    # 0 means working, 1 means broken
    current_state = 0
    # Initialise variable
    next_state = current_state

    for i in range(24):
        # Get a number between 0 and 1
        chance = random.uniform(0, 1)

        # Given my current state (line 0 or 1), what chance do I have
        # to work the next hour ?
        if chance <= table[current_state][0]:
            # The chance variable has more chance to be under if the number
            # in the table is high.
            next_state = 0
        else:
            # BROKEN
            next_state = 1
        current_state = next_state
        print("Current state " + ("Working" if current_state == 0 else "Broken"))

if __name__ == "__main__":
    simulate()


0 commentaires

0
votes

avec ce script: xxx

J'ai des résultats suivants: xxx


0 commentaires