python0003

蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。

复制代码
 1 import math
 2 import random
 3  
 4 # 输入扔飞镖的次数n
 5 n = int(input("输入扔飞镖的次数n:"))
 6 count = 0
 7 # 循环n次,每次生成两个范围为(-1,1)的小数并赋值给x,y
 8 for i in range(n):
 9     x = random.uniform(-1, 1)
10     y = random.uniform(-1, 1)
11     # 求x,y的平方和的平方根
12     c = math.sqrt(x ** 2 + y ** 2)
13     # 如果c小于等于1,说明(x,y)落在单位圆里,次数加1
14     if c <= 1:
15         count += 1
16 print("落在单位圆内的次数为%s" % count)
17 # 落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值
18 pi = (count / n) * 4
19 print("圆周率近似为%s" % pi)
复制代码

 

posted @   新晋软工小白  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-05-22 c语言趣味编程
点击右上角即可分享
微信分享提示