- 16
- 0
- 约 12页
- 2016-09-25 发布于重庆
- 举报
中科大黄刘生算法第一次作业
算法实验报告
Ex.1 若将y ← uniform(0, 1) 改为 y ← x, 则上述的算法估计的值是什么?
实验结果如下:
可见结果趋近于2*sqrt(2)
Ex.2 在机器上用估计π值,给出不同的n值及精度。
计算方法就采用课上讲到的HitorMiss算法,伪代码如下:
f←sqrt(1 – x*x)
HitorMiss (f, n) {
k ← 0;
for i ← 1 to n do {
x ← uniform(0, 1);
y ← uniform(0, 1);
if y ≤ f(x) then k++;
}//endfor
return 4*k/n;
}
实验结果如下:
从总的趋势来看,n的值越大,给出的pai的精度越高。但对应到两次实验结果未必n大的精度一定高,这是概率算法的特点。
EX.3 采用算法类似HitorMiss算法,不过加入了一些特殊处理,以便能够正确计算穿越x轴、周期函数等的积分。
算法伪代码如下:
f ← x^2 / - sqrt(x) / sin(x)
MyCalc(f , minx, maxx, miny, maxy, n)
{
k ← 0;
for i ← 1 to n do {
x ← uniform(minx, maxx);
y ← uniform(miny, maxy)
原创力文档

文档评论(0)