2016-10-03 88 views
0

我从这个循环散乱200个数据点:如何计算数据点的数量?

import math 
plt.figure() 

for i in range(200): 
    r=random.uniform(-1,1) 
    x=random.uniform(-1,1) 
    if math.sqrt(x**2+r**2)<1: 
     plt.plot(x,r,'r.') 
    else: 
     plt.plot(x,r,'k.') 
redraw() 

所以会有一些地块符合if条件。我想知道这些点的数量。我该怎么办?

+3

添加一个变量,并递增,如果在此一个。 (当然,它需要在循环之外创建) – sascha

+0

你想绘制一个阴影圆圈吗? – Natecat

+0

@Natecat我认为他正在逼近** pi **(通过蒙特卡洛采样)。但是代码仍然不完整。 – sascha

回答

3

你就只需要增加一个计数器,当条件满足:

import math 
plt.figure() 

good_samples = 0 
for i in range(200): 
    r=random.uniform(-1,1) 
    x=random.uniform(-1,1) 
    if math.sqrt(x**2+r**2)<1: 
     plt.plot(x,r,'r.') 
     good_samples += 1 
    else: 
     plt.plot(x,r,'k.') 
redraw() 
print "Counted {} good samples".format(good_samples)