想想Unit Circle x 2
。我所做的是创建两个列表,一个用于x
,一个用于y
,产生500对随机(x,y)。然后我在r=x2+y2
循环中创建了while
,其中r
是半径,x2=x**2 and y2=y**2
。我想要做的是计算r=<2.
我假设我的if
语句需要在while
循环中的次数,但我不知道如何计算满足条件r=<2
的次数。我是否需要为list
值创建r
?
import random
from math import *
def randomgen(N):
rlg1=[]
rlg2=[]
a=random.randint(0,N)
b=float(a)/N
return b
i=0
rlg=[]
rlg2=[]
countlist=[]
while i<500:
x=randomgen(100)*2
y=randomgen(100)*2
x2=x**2
y2=y**2
r=x2+y2
rlg.append(x)
rlg2.append(y)
print rlg[i],rlg2[i]
i+=1
if r<=2:
答案 0 :(得分:0)
import random
from math import *
def randomgen(N):
rlg1=[]
rlg2=[]
a=random.randint(0,N)
b=float(a)/N
return b
i=0
rlg=[]
rlg2=[]
countlist=[]
amount = 0
while i<500:
x=randomgen(100)*2
y=randomgen(100)*2
x2=x**2
y2=y**2
r=x2+y2
rlg.append(x)
rlg2.append(y)
print rlg[i],rlg2[i]
i+=1
if r<=2:
amount += 1
答案 1 :(得分:0)
您需要两个计数器。一个用于总点数(i
),另一个用于圈内点数r <= 2
(我称之为isInside
)。如果该点位于您的圈子(isInside
)内,您只想增加r <= 2
计数器。
i = 0
rlg = []
rlg2 = []
countlist = []
isInside = 0
while i < 500:
x=randomgen(100)*2
y=randomgen(100)*2
x2=x**2
y2=y**2
r=x2+y2
rlg.append(x)
rlg2.append(y)
print rlg[i],rlg2[i]
i+=1
if r <= 2:
# increment your isInside counter
isInside += 1