Monte Carlo simulation in Python with few lines of code

In this tutorial, we are going to learn Monte Carlo simulation. It is used to get the estimated probability of different outcomes. This is usually done in processes in which there is a random variable intervention. Monte Carlo simulation is used to tackle a range of problems in engineering, finance, and many other fields.

Demonstration of Monte Carlo Simulation

In the following example, I have considered a dice problem. I want to find out the probability that the sum of the dice outcome is even when a different number of dice is thrown. In this problem, I have considered the number of tosses to be 10000 for each range of dice to be thrown. (For example, Firstly I throw 1 dice 10000 times then two dice 10000 times, and so on). You can change the range as well as the number of tosses according to your will.

import random


def dice_toss(n):
    x=0
    sum=0
    for i in range(n):
        x=random.choice([0,1,2,3,4,5,6])
        sum=sum+x
    return sum

number_of_tosses = 10000 

for toss in range(1,20):
    even_sum=0 #possibilities which result in even sum
    for i in range(number_of_tosses):
        ans=dice_toss(toss)
        if ans%2==0:
            even_sum += 1
    no_even_percentage=float(even_sum)/number_of_tosses 
    print("number of tosses=",toss,"even percentage=",100* no_even_percentage)
Output:
number of tosses= 1 , even sum percentage= 56.85
number of tosses= 2 , even sum percentage= 51.370000000000005
number of tosses= 3 , even sum percentage= 50.96000000000001
number of tosses= 4 , even sum percentage= 49.82
number of tosses= 5 , even sum percentage= 49.94
number of tosses= 6 , even sum percentage= 50.3
number of tosses= 7 , even sum percentage= 49.02
number of tosses= 8 , even sum percentage= 49.51
number of tosses= 9 , even sum percentage= 50.239999999999995
number of tosses= 10 , even sum percentage= 50.03999999999999
number of tosses= 11 , even sum percentage= 49.69
number of tosses= 12 , even sum percentage= 49.519999999999996
number of tosses= 13 , even sum percentage= 50.239999999999995
number of tosses= 14 , even sum percentage= 50.27
number of tosses= 15 , even sum percentage= 50.3
number of tosses= 16 , even sum percentage= 50.63999999999999
number of tosses= 17 , even sum percentage= 49.79
number of tosses= 18 , even sum percentage= 49.55
number of tosses= 19 , even sum percentage= 50.4

Leave a Reply

Your email address will not be published. Required fields are marked *