Basic page
#!/usr/bin/python
#
# Monte Carlo simulation to determine pi
#
# John Giovannis - Dec 2011
#
import math
import sys
from random import random
# ---------------------------------------------------
def hypot(x,y):
a = math.sqrt(x*x + y*y)
return a
# ---------------------------------------------------
def calc_pi(max):
n = 0
inside = 0
# loop until the value "max" is reached
while (n < max):
n += 1
# pick a random point inside a box
x = 2*random() - 1
y = 2*random() - 1
# calculate the distance of the point from the centre
h = hypot(x, y)
# determine if the point is inside the circle
if h <= 1.0:
inside += 1
# calculate pi based on the number of points inside the circle
pi = 4 * ( inside / float(n) )
print "# points inside circle = %10d " % inside
print "# points inside square = %10d " % n
return pi
# ---------------------------------------------------
def main():
# number of random points to count
N = 1000000
np = long(N)
print "Monte Carlo simulation in progress"
pi_estimate = calc_pi(np)
print "pi (estimate) = %10.6f " % pi_estimate
sys.stdout.flush()
# ===================================================
# Main
if __name__ == '__main__':
main()Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1547981776 922777824 546544480 63% /
tmpfs 65736660 4220188 61516472 7% /run/dbus
tmpfs 65736660 0 65736660 0% /dev/shm drerit tempor ligula. Nullam euismod augue vel mollis aliquam. Praesent vehicula hendrerit pulvinar. Cras semper vitae felis vitae elementum. Integer a tincidunt nibh. Ut nisi velit, ultricies quis faucibus ut, semper quis tellus. Nulla vel efficitur dui, vel sagittis neque. Sed sodales tincidunt mi, eget iaculis est consequat quis. Duis diam turpis, posuere posuere ante eget, hendrerit imperdiet ligula. Phasellus eget justo id erat cursus aliquet non mollis velit. Vestibulum gravida odio orci, at volutpat tellus dapibus eu. Nulla facilisi. Etiam dignissim feugiat enim, ut eleifend turpis efficitur a. Nullam vitae magna quis leo sagittis sagittis eu at lectus. Sed accumsan ex a laoreet dignissim. Nullam eget elit et ipsum porta finibus.
Quisque volutpat diam lobortis ipsum porttitor feugiat non id lacus. Cras iaculis molestie rhoncus. Duis id arcu id metus tristique finibus facilisis sed urna. Curabitur tellus tellus, ultricies id pulvinar vitae, mattis vitae lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nunc nulla tortor, facilisis a lectus auctor, congue euismod risus. Nam suscipit, neque in mollis fringilla, risus felis ultricies nibh, at aliquet nibh sem sed justo. Aliquam vel libero eu lectus mollis mattis molestie ut nisl. Donec commodo augue vel diam laoreet malesuada. Vestibulum ac orci ac leo ornare gravida. Sed luctus nunc ligula. Pellentesque sit amet aliquam mauris.
Maecenas lobortis, dolor sit amet mattis molestie, lacus neque feugiat neque, eget molestie leo leo ut dolor. Aliquam dignissim ligula mauris. Nunc vehicula, enim sed iaculis dictum, augue neque sollicitudin nisl, quis sagittis felis eros eu est. Aenean porttitor viverra augue, vel blandit nisl scelerisque id. Donec mollis laoreet pharetra. Ut eget venenatis massa. Sed vel iaculis ligula. Fusce scelerisque sed risus a dapibus. Proin posuere leo quam. Quisque eleifend ipsum et varius semper. Duis ligula sapien, commodo vulputate volutpat sed, aliquet vel quam. Pellentesque ex sapien, egestas in pharetra vel, condimentum a dui. Pellentesque elementum lectus lectus, id efficitur felis imperdiet non.
