Python学习教程:用Python实现基于蒙特卡洛算法小实验

本文介绍了蒙特卡洛算法的基本思想,通过与拉斯维加斯算法对比,阐述了其在寻找近似最优解时的优势。通过三个经典实验,包括计算圆周率、函数定积分和寻找函数极值,展示了如何使用Python实现基于蒙特卡洛算法的小实验,以求得近似值。随着模拟次数增加,近似值的准确性提高。
摘要由CSDN通过智能技术生成

Python学习教程:用Python实现基于蒙特卡洛算法小实验
在这里插入图片描述
蒙特卡洛算法思想

蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城—摩纳哥的蒙特卡洛来命名这种方法。

通俗的解释一下蒙特卡洛算法的思想。假如篮子里有1000个苹果,让你每次闭着眼睛拿1个,挑出最大的。于是你闭着眼睛随机拿了一个,然后再随机拿一个与第一个比,留下大的,再随机拿一个,与前次留下的比较,又可以留下大的……你每拿一次,留下的苹果至少是当前最大的,循环往复这样,拿的次数越多,挑出最大苹果的可能性也就越大,但除非你把1000个苹果都挑一遍,否则你无法肯定最终挑出来的就是最大的一个。也就是说,蒙特卡洛算法是样本越多,越能找到最佳的解决办法,但只是尽量找最好的,不保证一定是最好的。

与它形成对比的是拉斯维加斯算法思想。假如有一把锁,有1000把钥匙进行选择,但只有1把是对的。于是你每次随机拿1把钥匙去试,打不开就再换1把。你试的次数越多,打开最优解的机会就越大,但在打开之前,那些错的钥匙都是没有用的。所以拉斯维加斯算法就是尽量找最好的解决办法,但是不保证能找到。假设试了999次后没有任何一把钥匙能打开锁,真正的钥匙是第1000把,但是样本并没有第1000次选择,那么拉斯维加斯算法就不能找到打开锁的钥匙。

蒙特卡洛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值