用python编辑蒙特卡罗方法
时间: 2023-06-09 15:07:28 浏览: 74
使用Python编写蒙特卡罗方法的示例代码如下:
```python
import random
def monte_carlo_pi(num_iterations: int) -> float:
inside_circle = 0
for i in range(num_iterations):
x = random.random()
y = random.random()
distance = x**2 + y**2
if distance <= 1:
inside_circle += 1
pi = 4 * inside_circle / num_iterations
return pi
```
这段代码实现的是蒙特卡罗方法估算圆周率的过程。对于一个正方形内,与其相切的圆的面积比上正方形面积可知:
$ \frac{\pi r^2}{4 r^2} = \frac{\pi}{4} $
因此,我们可以通过在以原点为中心,半径为1的圆内随机采样,统计落入圆内的采样点个数,估算 $\pi$ 的值。
具体来说,我们随机生成一组二元组 $(x, y)$,计算其到原点的距离 $d = \sqrt{x^2+y^2}$。如果 $d \le 1$,则认为这个采样点在圆内,否则认为不在圆内。
统计所有落在圆内的采样点个数 $n$,那么 $\pi$ 的估计值为:
$ \pi \approx \frac{4n}{N} $
其中,$N$ 是采样点总数。随着 $N$ 的增大,这个估计值会越来越接近真实值 $\pi \approx 3.14159265$。
使用这个函数估算 $\pi$ 的值,可以这样调用:
```python
pi = monte_carlo_pi(1000000)
print(f"Estimated pi: {pi}")
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)