【发布时间】:2016-05-13 20:04:08
【问题描述】:
我需要通过求和来估计 pi 的值 ?????? = (1 / (???? + 1)) ∑ 1/( 1 - ???? ????2 )^ (1 / 2) 其中 ??????????是均匀分布的随机数。
import math
import random
def Pi(N,x):
S = (1/(N+1))*(1/(1-x**2)**(0.5))
return S
def function(N,a,b):
x = random.uniform(a,b)
total = sum(Pi(N,x))
return total
print(function(1000,0.0,1.0))
输出基本上是给我这个。
TypeError: 'float' 对象不能被解释为整数
【问题讨论】:
-
哪个部分抛出错误?
-
对不起,我没有包括输出。我不断收到“TypeError:'float' 对象不能被解释为整数”,老实说,我不知道我的意思。我会看看你刚才放的链接。
-
print(function(1000.0)) S = sum(Pi(N,0.0,1.0))
-
您输入了错误消息。当我运行你的代码时,我得到
TypeError: 'float' object is not iterable。不可迭代与“不能被解释为整数”有很大不同。将来,请将整个异常回溯复制到您的问题中,以避免此类问题。它还将准确显示导致异常的行。 -
Pi(N,x)返回一个数字,sum()需要一个数字列表。
标签: python python-3.x montecarlo pi