- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中科大黄刘生算法第一次作业中科大黄刘生算法第一次作业
算法实验报告
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);
if f(x) = 0//函数在x轴上方,积分是f与x轴之间的部分,积分值为正
then if y = f(x) y =0
k++;
else//函数在x轴下方,积分是f与x轴之间的部分,积分值为负
if y = f(x) y = 0
k--;
}//endfor
if miny 0//函数在x轴上方
then return k / n * (maxx - minx) * (maxy - miny) + miny * (maxx - minx));
else if maxy 0//函数在x轴下方
then return k / n * (maxx - minx) * (maxy - miny) + maxy * (maxx - minx);
else//函数穿越x轴
then return k / n * (maxx - minx) * (maxy - miny);
}
运行结果如下:
可见程序运行结果还是很准确的,能正常处理在x轴单侧、穿越x轴的连续函数积分。
Ex.5 估计自然数子集的大小
采用了课件中介绍的概率算法。为了加快速度,程序采用红黑树处理集合相关运算,比如判断产生的随机数是否已经出现过等,效率为O(log n)。
算法伪代码如下(部分非主要算法未给出):
struct Num{//红黑树节点,num为已产生的随机数
num; parent; LeftChild; RightChild; color; };
LeftRotate(Num **root, Num *x); //红黑树root以x为支点左旋
RightRotate(Num **root, Num *x); //红黑树root以x为支点右旋
insertfixup(Num **root, Num *z); //修正插入元素z后的红黑树,使其符合红黑树性质
insert(Num **root, Num *z);//将节点z插入以root为根的红黑树,同时检查待插入的节点是否在树中出现过。返回true表示元素出现过,停止生成叶子;返回false表示未出现过这个元素,正常生成叶子
NumberOfSet(n)
{
Number ← 0;// 对集合数目估计10次,10次的总和
for i ← 1 to 10 do{
times ← 0;
NumPicked ← uniform(1, n);
NodeOfRedBlackTree ← NumPicked;//将产生的随机数赋给红黑树节点
while [ insert( NodeOfRedBlackTree ) ] = false //该元素没有出现过
then do{
NumPicked ← uniform(1, n);
NodeOfRedBlackTree ← NumPicked;
times++;
}//endwhile
Number ← Number + 2 * times^2 / pai;
}//endfor
return Number / 10;
}
算法运行结果如下:
从以上的运行结果可以看出,算法能够处理100到10^9量级的计数,计数效果随n的增大逐渐变好。当n较小时,每次运行给出的结果误差
您可能关注的文档
- 中国教育改革10年回顾中国教育改革10年回顾.ppt
- 中国法制史第3次任务_0008中国法制史第3次任务_0008.doc
- 中国法制史第4次任务_0007中国法制史第4次任务_0007.doc
- 中国海关新舱单系统中国海关新舱单系统.ppt
- 中国特色社会主义生态文明建设(课程论文)中国特色社会主义生态文明建设(课程论文).doc
- 中国特色社会主义生态文明建设研究_刘静_二_国内外研究现状_17_28中国特色社会主义生态文明建设研究_刘静_二_国内外研究现状_17_28.pdf
- 中国王氏家谱字辈大全中国王氏家谱字辈大全.doc
- 中国水污染趋势与治理制度中国水污染趋势与治理制度.pdf
- 中国电力金融市场的实现路径探讨_黄仁辉中国电力金融市场的实现路径探讨_黄仁辉.pdf
- 中国电信灾难备份服务中国电信灾难备份服务.ppt
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)