Wednesday, August 12, 2015

Python : random (4)

Abstract: calculate Pi using Monte Carlo methods

The result:
3.14159265359
Permutation 1000: pi=3.18
Permutation 1000000: pi=3.143564
Permutation 100000000: pi=3.14153228


The script:
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 12 09:43:50 2015

@author: yuan
"""

# calculate Pi using the Monte Carlo method
import random
import math

#Monte Carlo
def Monte_Carlo(permuation):
    in_points=0
    for i in range(permutation):
        x=random.random()
        y=random.random()
        #print math.sqrt(x*x+y*y)
        if math.sqrt(x*x+y*y)<1:
            in_points +=1
    pi=float(in_points)/permutation
    return pi*4
   

if __name__=="__main__":
    #The math model:
    print math.pi
   
    #Monte Carlo method
    permutation=1000
    print 'Permutation %s: pi=%s' % (permutation, Monte_Carlo(permutation))
    permutation=1000000
    print 'Permutation %s: pi=%s' % (permutation, Monte_Carlo(permutation))
    permutation=100000000
    print 'Permutation %s: pi=%s' % (permutation, Monte_Carlo(permutation))

No comments:

Post a Comment