使用if语句python

时间:2016-03-29 15:01:31

标签: python

想想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:

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