Python中文
首页
教程
问答
标签
搜索
登录
注册
无法在Python上精确计算pi
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我是这里的新成员,我要直接开车去,因为我已经花了整个星期天的时间来想办法解决这个问题。在</p> <P>我是Python的新手,以前已经学习过C++的基本中间层编码(它是一个10周的大学模块)。在</p> <p>我正在尝试一些迭代技术来计算π,但是两种方法都有点不准确,我不知道为什么。在</p> <p>我在大学里教的第一种方法-我相信你们中的一些人以前见过这种方法。在</p> <pre><code>x=0.0 y=0.0 incircle = 0.0 outcircle = 0.0 pi = 0.0 i = 0 while (i<100000): x = random.uniform(-1,1) y = random.uniform(-1,1) if (x*x+y*y<=1): incircle=incircle+1 else: outcircle=outcircle+1 i=i+1 pi = (incircle/outcircle) print pi </code></pre> <p>它本质上是一个在两个轴上从-1到+1的平面上随机(x,y)坐标的生成器。如果x^2+y^2<;=1,我们知道点位于坐标轴形成的方框内半径为1的圆内。在</p> <p>根据点的位置,<code>incircle</code>或{<cd2>}的计数器增加。在</p> <p>pi的值就是圆内外值的比值。坐标是随机生成的,所以它应该是均匀分布。在</p> <p>然而,即使在非常高的迭代值下,Pi的结果也总是在3.65左右。在</p> <p>第二种方法是另一种迭代,它计算多边形的周长,随着边数的增加,直到多边形几乎是一个圆,然后Pi=周长/直径。(我有点作弊,因为编码有一个数学.cos(π)项,所以看起来我是用π来求π,但这仅仅是因为在Python上不能很容易地使用度数来表示角度)。但即使是高迭代,最终结果似乎在3.20左右结束,这也是错误的。代码在这里:</p> ^{pr2}$ 我记得,当我做C++课程时,被告知问题是常见的,不是因为数学,而是因为编码中的东西,但是我记不清了。它可能与随机数的生成有关,或者使用浮点数的局限性,或者。。。什么都可以。它甚至可以是我的数学。。。在</p> <p>有人能想到问题是什么吗?在</p> <p>DR:试图计算Pi,我可以接近它,但无论我做多少次迭代,都不能非常精确。在</p> <p>(哦,还有一点-在第二个代码中,有一行写着s=2.0**k。如果我将'n'设置为任何高于2000的值,s的值就会变得太大而无法处理,代码就会崩溃。我怎样才能解决这个问题?)在</p> <p>谢谢!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>对于第一个,你的计算应该是</p> <pre><code>pi = incircle/1000000*4 # 3.145376.. </code></pre> <p>这是落在圆圈内的点数超过总点数(在我的跑步中大约是0.785671)。在</p> <p>半径为1(<code>random.uniform(-1,1)</code>)时,总面积为4,因此,如果用落在圆内的点的比率乘以4,就得到了正确的答案。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
2 回答
文本小部件:在没有输入时更新并在循环后保持空闲
3 回答
文本小部件tkin
2 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
3 回答
文本小部件tkinter复制图像选项
5 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
1 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
9 回答
文本小部件不显示lis中的内容
5 回答
文本小部件不显示Unicode字符
8 回答
文本小部件中写入的行间距
8 回答
文本小部件中的文本作为变量
8 回答
文本小部件中的滚动条仅显示在底部
7 回答
文本小部件中的选项卡键空间计数
7 回答
文本小部件作为Lis
4 回答
文本小部件在主框架中扩展列宽
7 回答
文本小部件未使用删除功能清除
10 回答
文本小部件滚动动画(Tkinter、Python)
5 回答
文本居中。格式正确吗?
9 回答
文本差分算法
8 回答
文本已知时音频文件中的单词索引
8 回答