Python算法分析与设计:随机算法

Python算法分析与设计:随机算法

一、实验目的

1、了解两种典型的随机算法:蒙特卡洛和拉斯维加斯算法,以及它们之间的异同
2、熟练掌握利用随机算法求解典型的计算问题,如矩阵乘积结果验证、快速排序、选择第K小的数和最小割验证等
3、了解随机快速排序算法复杂度分析过程

二、实验工具

Win10操作系统、python3.7编译环境、IDLE编译器

三、实验内容

应用蒙特卡洛算法,设计一段python程序,用于计算圆周率的近似值。

四、实验调试过程

要求圆周率的近似值,实验原理为:
一个正方形内部相切一个圆,圆和正方形的面积之比是π/4。在这个正方形内部,随机产生n个点(这些点服从均匀分布),计算它们与中心点的距离是否大于圆的半径,以此判断是否落在圆的内部。统计圆内的点数,与n的比值乘以4,就是π的值。理论上,n越大,计算的π值越准。

综上,计算圆周率的近似值,我们可以用蒙特卡洛算法和随机生成数(random)算法来计算。random库Python的另一个标准库,它主要是用来生成随机数的。random库生成的随机数是采用梅森旋转算法生成的(伪)随机数。蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征࿰

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值