Probability calculator

m_ishwar 0 Tallied Votes 377 Views Share

Here is a code snippet that calculates the probability of the outcome of a two sided game based on the capability of each side. I used it in my football league simulator program
Could be used in any number of simulators which involve two parties. For equally strong parties, the result is calculated based on equal probability of all three outcomes.
It can be written in hundreds of different ways. Good Luck

from random import randrange
#randrange form random module

def calc_prob(strengths):
	"""A function that receives an array of two numbers indicating the strength of each party and returns the winner"""
	if strengths[1]>strengths[0]:#Bring the bigger number to the first position in the array
    	temp=strengths[0]
    	strengths[0]=strengths[1]
    	strengths[1]=temp       
        
    prob1=abs(strengths[0]-strengths[1])#The relative strength of the 2 parties
    
    prob2=randrange(0,100)#To calculate the luck that decides the outcome
    
    if prob2 in range(0,33-prob1):#Check if the weaker party is capable of winning. The condition gets narrower with the increase in relative strengths of each parties
    
    	return strengths[1]
    
    elif prob2 in range(33-prob1,66-prob1):#The middle condition
    
    	return "Draw"
    
    else:
    
         return strengths[0]#Luck favors the stronger party and if relative strength between the teams is too large, the match ends up in favor of the stronger party  
        
#Example
calc_prob([50,75]);#Always has to be a list to allow exchange
#Can be programmed in hundreds of better ways. Good luck!