- 164
- 0
- 约4.02千字
- 约 8页
- 2020-11-30 发布于浙江
- 举报
《算法设计与分析》实验报告
实验六 概率算法
报告书
姓名
指导教师
学号
日 期
班级
实验内容
使用随机方法求解圆周率。
使用舍伍德算法求n个数中的第k大的数。
试用拉斯维加斯方法求解8皇后问题,能得到正确解吗?
蒙特卡罗算法有何特点?请举例说明。
实验目的
1)熟悉和掌握随机化方法
2)熟悉和掌握舍伍德算法、拉斯维加斯算法、蒙特卡罗算法以及它们的特点。
实验过程和步骤
1 使用随机方法求解圆周率
解题思路
假设正方形半径2r ,圆半径为r ,故圆的面积为π*r*r ,正方形面积为 r*r*4。
则通过蒙特卡洛算法,狂跑随机数,在正方形面积内抛骰子,若落在圆面积则计数。最后通过落院内的计数与总数比值,可以近似为圆面积与正方形面积的比值,之后再乘4,可得π。
程序运行情况
程序源码(含注释)
#includebits/stdc++.h
using namespace std;
int n,r;
double ans;
void init()
{
//printf(input the num of the times, you want to rand(turned out to be the accuracy):\n);
//scanf(%d,n);
n=100000000;
printf(input the range o
原创力文档

文档评论(0)