| Table of Contents | Previous Slide | Next Slide |
Software Development in the UNIX Environment
Sample C Program
Example C Program to Compute PI Using A Monte Carlo Method
Source code:
/* Program to compute Pi using Monte Carlo methods */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#define SEED 35791246
main(int argc, char* argv)
{
int niter=0;
double x,y;
int i,count=0; /* # of points in the 1st quadrant of unit circle */
double z;
double pi;
printf("Enter the number of iterations used to estimate pi: ");
scanf("%d",&niter);
/* initialize random numbers */
srand(SEED);
count=0;
for ( i=0; i<niter; i++) {
x = (double)rand()/RAND_MAX;
y = (double)rand()/RAND_MAX;
z = x*x+y*y;
if (z<=1) count++;
}
pi=(double)count/niter*4;
printf("# of trials= %d , estimate of pi is %g \n",niter,pi);
}
Monte Carlo techniques: use of random sampling techniques to solve mathematical or physical problems.
Command to compile and link : cc -o monte_pi monte_pi.c
Commands to compile and link in two steps:
1. cc -c monte_pi.c (this produces object file monte_pi.o)
2.cc -o monte_pi monte_pi.o (produces executable monte_pi)
Output of command 'ls -l
monte_pi': 32 -rwxr-xr-x 1 sas user 12580 Oct 11 14:25
monte_pi
Output of command 'file
monte_pi': ELF N32 MSB mips-4
dynamic executable (not stripped) MIPS - version 1
To run type: monte_pi
Results of running monte_pi:
azure 58% monte_pi
Enter the number of iterations used to estimate pi: 1000
# of trials= 1000 , estimate of pi is 3.044
Run the program using an input file:
Create a file called monte.input with the number interations
(ex. 1000) on the first line.
Issue the command monte_pi < monte.input
To run the program monte_pi in the background with an input file:
monte_pi < monte.input&