说明:本例中先取0到20000之间的随机数,然后再用这些点除以10000即可得到0到2之间的随机数,随机数精度为五位有效数。
以下是用c++语言模拟的求解圆周率的程序:

#include <iostream>
#include <iomanip>   //setw函数,setprecision函数
#include <time.h>      //time函数
#include <stdlib.h>    //srand,rand函数
using namespace std;
int main()
{
        int dwCount;
        cout<<"请输入打点的数目"<<endl;
        cin>>dwCount;            //自己输入所要取的点数。
        double j,k;
        double x,y;
        double m=0;
    for(int i=0;i<dwCount;i++)
        {
                j=(int)(20000.0*rand()/(RAND_MAX+0));//取从0到20000之间的随机数
                k=(int)(20000.0*rand()/(RAND_MAX+0));//取从0到20000之间的随机数
            x=j/10000; /*用刚才所取得随机数除以10000就是0到2之间的随机数,5位有效数字,代表横坐标*/
                y=k/10000;   /*用刚才所取得随机数除以10000就是0到2之间的随机数,5位有效数字,代表纵坐标*/
                if(((x-1)*(x-1)+(y-1)*(y-1))<=1)    //判断所取得点是否在圆内
                {
           m++;   //如果这个所取得点在圆内,则计数器加1
                }       
                cout<<x<<" "<<y<<endl;   /*输出所取得随机数,没有实际意义,只为了直观的看见所取得随机数*/               
        }
        cout<<m<<endl;
        double s=m/dwCount;    //用圆内的点数除以所取得点数,得到一个比例
        cout<<s<<endl;
    double t=4*s;    /*用刚才的点数乘以4就是圆的面积,因为这里做了特殊,所以这个值也就是圆周率*/
    cout<<t<<endl;      //输出圆周率
return 0;
}