在边长为1的正方形内部,以正方形的中心为圆心画一半径为r的圆。在正方形内进行次随机投针试验,假定其中落在圆内的针的数目为n0,则可得到n/n0=πr^2,由此可计算π的值。
n0固定,研究π的计算精度和r之间的关系,可计算π对变化的灵敏度,即从某固定值增加或减少某个小的量时,对应π的值是否有明显变化;
* 研究π计算精度和n0之间的关系时,可固定r,计算n0取不同值时π计算精度的均值和方差。
设计并测试一个用于计算圆周率PI的正方形类PISquare。要求:
(1) 在PISquare类外定义名为Point的结构体,其成员为 double x 和 double y , 用于保存一个点的坐标;
(2) 定义PISquare的类成员变量:总点数,圆半径,落入圆内的点数,最终所计算的值PIVal等;
(3) 定义PISquare的数组成员变量:Point pts[ N ], 用于保存所有个点的坐标(N为预设的大的常量,如30000);
(4) 定义PISquare的成员函数FillPoints (),用于将[0,1]*[0,1]内产生的个随机点填入pts的前个元素;
(5) 定义PISquare的private成员函数int CacuInPoints (),用于统计落入半径为的圆内的点数;
(6) 定义PISquare的成员函数CacuPI(),用于计算圆半径为时的值。需要调用CacuInPoints 函数;
(7) 定义PISquare的成员函数ShowRes(),用于显示,以及圆半径为时的值。
(8) 定义PISquare的构造函数,完成:
8.1 数组pts的所有N 个点设初值(0, 0);
8.2 设置和的值;
8.3 产生单位元内的个随机点,作为数组pts的前个元素;
代码如下:
希望能帮到你!望采纳!
追问你这个不符合我的要求啊,算法不符合,而且没有定义类。