计算机导论实验3

实践编程第三讲-利用Python语言编制蒙特卡洛算法程序

利用Python编写蒙特卡洛算法

  • 目的
    在这里插入图片描述
    在这里插入图片描述
  • 定义
    在这里插入图片描述
  • 解决不同类型的问题
    在这里插入图片描述
    在这里插入图片描述
  • 工作过程
    在这里插入图片描述
  • 求圆周率
    在这里插入图片描述
  • python的api随机数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

蒙特卡洛算法计算圆周率

  • 计算程序
    PI * R * R/4 / 1 = totalInRound / totalNum
    PI = totalInRound / totalNum * 4 /R /R
    在这里插入图片描述
  • 小结
    1.蒙特卡罗算法:采样越多,越近似最优解;
    2.拉斯维加斯算法:采样越多,越有机会找到最优解;

举个例子,假如筐里有100个苹果,让我每次闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的。

而拉斯维加斯算法,则是另一种情况。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯维加斯的——尽量找最好的,但不保证能找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值