python蒙特卡罗
时间: 2023-08-30 10:09:01 浏览: 117
python实现蒙特卡洛算法
Python蒙特卡罗是一种数值模拟方法,也称为蒙特卡罗法或统计模拟法。它是按抽样调查法求取统计值来推定未知特性量的计算方法。蒙特卡罗方法的名字来源于摩纳哥的著名赌城,以表明它的随机抽样本质。在计算仿真中,通过构造一个和系统性能相近似的概率模型,并在数字计算机上进行随机试验,可以模拟系统的随机特性。
在Python中,蒙特卡罗方法可以通过生成随机数来进行模拟。首先,我们需要设定抛投的次数,也就是抛投的点数。然后,我们可以利用random模块的random()方法生成一个0到1之间的随机数,代表点的位置。接着,我们计算每个点到原点的距离,如果距离小于等于1,则认为该点在单位圆内,否则在单位圆外。最后,我们统计落在单位圆内的点的数量,并通过计算得到圆周率的近似值。下面是一个Python蒙特卡罗方法的示例代码:
```python
from random import random
from time import perf_counter
DARTS = 1000000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS + 1):
x, y = random(), random()
dist = pow(x ** 2 + y ** 2, 0.5)
if dist <= 1.0:
hits += 1
pi = 4 * (hits / DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter() - start))
```
以上代码通过抛投1000000个点来估算圆周率的值。每个点的横纵坐标都是由随机数生成的,然后根据点到原点的距离是否小于等于1来判断点是否在单位圆内。最后,根据落在单位圆内的点的数量和总点数的比例,计算得到圆周率的近似值。运行结果会输出圆周率的近似值和程序的运行时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Python笔记 | 蒙特卡罗方法](https://blog.csdn.net/m0_51191308/article/details/126844660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文