【Hadoop】-拓展:蒙特卡罗算法求PI的基础原理[10]

Monte Carlo蒙特卡罗算法(统计模拟法)

Monte Carlo算法的基本思想是:以模拟的“实验”形式、以大量随机样本的统计形式,来得到问题的求解。比如,求圆周率,以数学的方式是非常复杂的,但是我们可以以简单的形式去求解:

如图,我们在正方形内,随机落点,统计落在1/4圆内的点和总店数量的比例即可得到1/4的PI,最终乘以4即可得到PI。比如,红色点的数量比全部点的数量,结果是0.756,那么乘以4就可以得到3.06,3.06就是求得的PI。

  • 所以,此方法,需要大量的样本(落点),样本越多越精准。

示例代码

如下,以python语言实现的蒙特卡罗求PI

import random
sample_num = int(input("请输入样本数:"))
inner_point = 0
pi = 0
for i in range(sample_num):
    a = random.uniform(0,1)
    b = random.uniform(0,1)
    if a*a + b*b <= 1:
        inner_point = inner_point + 1
pi = (inner_point / sample_num) * 4
print(f"样本数:{sample_num},pi近似等于{pi}")

运行结果:

相关推荐

  1. 使用Python实现算法

    2024-04-23 08:40:01       35 阅读
  2. 主元素问题(方法)笔记

    2024-04-23 08:40:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 08:40:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 08:40:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 08:40:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 08:40:01       18 阅读

热门阅读

  1. NTP授时服务器(GPS授时器)在DCS系统应用

    2024-04-23 08:40:01       35 阅读
  2. 话是开心锁

    2024-04-23 08:40:01       15 阅读
  3. nginx中的哈夫曼编码算法

    2024-04-23 08:40:01       15 阅读
  4. 压力与平衡

    2024-04-23 08:40:01       16 阅读
  5. 随便记录点

    2024-04-23 08:40:01       14 阅读
  6. PAT 1097 Deduplication on a Linked List(25分)

    2024-04-23 08:40:01       17 阅读
  7. ospf的工作过程和特点

    2024-04-23 08:40:01       15 阅读
  8. vue 实现级联选择器功能

    2024-04-23 08:40:01       13 阅读
  9. UML类图

    UML类图

    2024-04-23 08:40:01      13 阅读
  10. AWS清除CloudFront缓存

    2024-04-23 08:40:01       13 阅读
  11. 维护网络安全的途径有哪些?

    2024-04-23 08:40:01       15 阅读