DEV Community

Cover image for Simulating the Monty Hall problem using Streamlit
Arnav
Arnav

Posted on

Simulating the Monty Hall problem using Streamlit

The Monty Hall problem is a classic probability puzzle that has intrigued mathematicians and casual thinkers alike. It presents a scenario where a contestant must choose one of three doors, behind one of which is a car πŸš—(the prize), while the other two doors hide goats 🐐. After the contestant makes their initial choice, the host, who knows what is behind each door, opens one of the remaining doors to reveal a goat. The contestant is then given the option to either stick with their original choice or switch to the other unopened doorπŸšͺ.

Line Chart visualizing the wins for remain and switch

Although intuition would suggest that switching the door would have no effect on the probability of winning a car ( 1/2 probability of success either by switching or retaining), the truth is that switching the door would result in around 2/3 (67%) chance of success, while remaining with the original door would only result in around 1/3 (33%) chances of success.

The chances of success after switching approach (N-1/N) where N represents the number of doors. For large values of N, the probability of success P(S) by switching is ~1 (near certainty). I came across this problem during a Math fair in my school, and have been fascinated by it ever since. I created this simulator to visualize the problem and prove that switching doors is beneficial.

Libraries and tools used

  • Streamlit for the GUI
  • Altair for the interactive line chart
  • Pandas for recording the outcome of each iteration
  • Huggingface Spaces for hosting

Check the demo at:

https://huggingface.co/spaces/0xarnav/MontyHall

You can change the number of doors and iterations to see how the probabilities change. For example, at 10 doors the probability of success after switching becomes ~90%. This simulation proves the surprising conclusion that switching doors generally leads to a higher chance of winning.

References

UC Analytics for the cover image

Top comments (0)