Simuler le problème de Monty Hall en utilisant Python

Si vous êtes un jeune des années 70, vous avez peut-être grandi en regardant l’émission de jeu préférée, Let’s Make a Deal. Depuis, les individus parlent avec vivacité du problème Monty Hall et s’amusent à le reproduire. Le suspense époustouflant et aussi le drame développé lorsque le participant choisit parmi les 3 portes sont agréables à apprécier à chaque fois.

En utilisant les mathématiques ainsi qu’un peu de spectacles, vous êtes très probablement en train de construire un simulateur Monty Hall en utilisant Python. En l’utilisant, vous aurez certainement la possibilité de décider finalement que le fait de changer les portes augmente vos chances de gagner.

Qu’est-ce que le problème Monty Hall ?

Le problème Monty Hall est un casse-tête appelé d’après l’animateur de jeux télévisés, Monty Hall. Il y a 3 portes, dont une seule comprend une récompense recherchée. Lorsque vous choisissez une porte, Monty – qui comprend ce qu’il y a derrière – ouvre une porte supplémentaire, révélant une chèvre. Vous avez maintenant la possibilité de rester sur votre choix initial ou de bouton vers l’autre porte.

En raison de sa nature inattendue et également imprévisible, l’énigme de Monty Hall est populaire. Bien qu’elle gère les probabilités, l’option résiste à l’intuition. Elle fonctionne comme une superbe présentation de la complexité des calculs de possibilités. Le défi nous apprend justement à négliger les perceptions d’événements relativement arbitraires et à nous concentrer plutôt sur la pensée ainsi que sur les vérités.

Les modules Random et Tkinter

Pour construire une simulation Monty Hall en Python, commencez par les modules Random et Tkinter.

Il existe un certain nombre de fonctionnalités pour créer des nombres arbitraires dans le composant Random. Vous pouvez utiliser ces algorithmes pour générer des séquences mixtes, des activités de jeux vidéo, ainsi que des entiers pseudo-aléatoires. Il est fréquemment utilisé dans les jeux vidéo comme le cricket à la main, ou un examen de saisie simple, ainsi que pour imiter les jets de dés et aussi pour mélanger les listes.

Voir aussi :  Comment tester les applications Next.js avec Jest

Tkinter est la bibliothèque d’interface graphique par défaut pour Python. En l’utilisant, vous pouvez construire de fantastiques applications d’interface graphique. Vous pourriez créer une application d’ordre d’affaires, un éditeur plein écran ou une calculatrice de base. Vous pouvez mettre vos connaissances en technique et aiguiser vos capacités de spectacle en utilisant Python et Tkinter pour créer des applications de bureau standard.

Ouvrez un terminal et exécutez également la commande suivante pour inclure Tkinter à votre système :

Comment construire un simulateur de Monty Hall en utilisant Python.

Vous pouvez découvrir le code ressource du simulateur Monty Hall dans ce dépôt GitHub.

Importez les modules arbitraires et également Tkinter. La fonction StringVar permet de contrôler plus facilement la valeur d’un widget comme un Label ou une Entry. Vous pouvez faire usage d’un Label pour présenter un certain message à l’écran ainsi qu’une Entry pour apporter une entrée utilisateur.

Initialiser l’instance Tkinter et présenter la fenêtre d’origine. Définissez les dimensions de la fenêtre d’accueil à 600 pixels de large et 200 pixels de haut en utilisant l’option geometry() . Définissez un titre de fenêtre d’accueil approprié, et interdisez également son redimensionnement.

Ensuite, établissez 2 ensembles de widgets et de variables pour stocker les résultats de la simulation. Votre application demandera certainement une variété de go pour se terminer. Tout au long de chaque exécution, elle simulera le jeu vidéo et enregistrera la cause chaque cas : si le joueur choisit de basculer ou de maintenir la même option.

À l’aide de StringVar(), établissez les premières valeurs de la même option et basculez le choix à 0. Spécifiez un widget Entry ainsi que définissez sa dimension de police à 5. Déclarez 2 étiquettes pour montrer la même option et le choix commuté ainsi que le positionner. Déclarez 2 autres étiquettes qui afficheront certainement la valeur des variables que vous avez définies précédemment. Enfin, placez le widget Entry listé sous ces quatre balises.

Voir aussi :  Comment récupérer des données avec Redux-Saga dans une application React

Définissez une fonctionnalité, simuler. Démarrer les variables de résultat ainsi que d’obtenir la valeur de l’exemple obtenu par l’individu. Énoncez une liste qui contient les éléments que les portes vont certainement exposer.

Dans chaque exécution, faites une liste répliquée des portes originales et aussi mélangez-la dans un ordre arbitraire. Choisissez une porte arbitraire et retirez-la – ceci simule le choix du joueur. Simulez ensuite la révélation de Monty : si la porte initiale ne contient pas la récompense, ouvrez-la, ou bien ouvrez la deuxième porte. Débarrassez-vous de ce choix ainsi que de laisser la porte restante comme l’option vers laquelle changer.

Si le premier choix comprend la récompense recherchée, incrémentez le résultat de l’option exactement identique par un et mettez-le en miroir sur l’écran. Ou bien, faites la même opération pour l’option basculée.

Une étape importante est de lier l’essentiel de l’entrée avec une occasion dans la fenêtre Tkinter. Ce faisant, on s’assure que lorsque le joueur appuie sur la touche Enter , une certaine fonction sera certainement exécutée. Pour ce faire, il faut passer la commande < Return> et également la fonction de réplication comme critères à la fonction bind() fonction.

Le site mainloop() indique à Python d’exécuter la boucle d’événements de Tkinter et d’écouter les occasions (comme les pressions sur les interrupteurs) jusqu’à ce que vous fermiez la fenêtre.

Mettez tout cela ensemble et exécutez également votre programme pour reproduire le problème en action.

Sortie du simulateur de Monty Hall en utilisant Python.

En exécutant le programme, vous verrez une fenêtre de base avec les étiquettes de l’option Same ainsi que de l’option Switched. Entrez un numéro d’échantillon dans le champ en bas pour voir les résultats de substitution. Dans cet échantillon de 3 exécutions, le programme révèle qu’il gagne une fois avec la même option ainsi que deux fois avec un switch.

Ces résultats sont aléatoires, mais vous pouvez exécuter la simulation avec une plus grande dimension d’exemple pour plus de précision. Dans la taille d’exemple adhérente de 100, l’option commutée gagne 65 fois.

Voir aussi :  TanStack Query vs. useEffect Hook : Lequel est le meilleur pour récupérer des données dans React ?

Résoudre des problèmes en utilisant la programmation

Le simulateur Monty Hall est une excellente démonstration de la façon dont vous pouvez utiliser la programmation pour résoudre des problèmes de la vie réelle. Vous pouvez établir de nombreux algorithmes et entraîner des conceptions pour effectuer certaines tâches comme le tri d’une gamme ou l’amélioration de l’efficacité d’un système pour une production optimale.

Les différents langages de programmation utilisent diverses capacités et fonctionnalités pour faciliter la programmation. En utilisant Python, vous pouvez créer des versions capables de prédire les valeurs futures d’un ensemble de données avec une plus grande précision. De plus, vous pouvez automatiser les procédures répétitives, diminuer le travail ennuyeux, et également améliorer le taux ainsi que la précision.

S’abonner à notre e-newsletter

Python peut-il exécuter des simulations ?

Pour récapituler, voici les trois étapes à suivre pour exécuter une simulation en Python : Établir l’environnement. Passez les paramètres. Exécuter la simulation.

Quel est le problème de Monty Hall avec N portes Python ?

Le problème de Monty Hall est une célèbre énigme en probabilité qui prend la forme d’un jeu télévisé hypothétique. On présente au concurrent trois portes ; derrière l’une d’elles se trouve une voiture et derrière chacune des deux autres, une chèvre. Le concurrent choisit une porte, puis l’animateur du jeu télévisé ouvre une autre porte pour révéler une chèvre.

Le problème de Monty Hall fonctionne-t-il dans la pratique ?

Oui, cela fonctionne. Lorsque le problème de Monty Hall est abordé dans une discussion, certaines personnes suivront plus ou moins l’argument, mais se demanderont néanmoins ce qui se passe si vous essayez de manière répétée le problème de Monty Hall en pratique. C’est une chose tout à fait naturelle de se poser la question.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *