2016-03-29 21 views
0

ile olan sayım sayıları Unit Circle x 2'u düşünün. Yaptığım şey, x için bir tane ve y için bir tane olmak üzere iki liste oluşturuyor ve 500 çift rastgele (x, y) üretiyor. Sonra while döngüsünde r=x2+y2 döngüsünü oluşturdum, burada r yarıçap ve x2=x**2 and y2=y**2. Ne yapmak istediğim, sayıları r=<2. sayımınıdöngüsünde olması gerektiğine inanıyorum, ancak aslında r=<2 koşulunun kaç kez karşılandığını bilmiyorum. r değerleri için list oluşturmam gerekiyor mu?İfadeleri python

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

, 'r eğer <= 2'FC doğrudur? – svohara

cevap

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 
+5

Sadece çözümler sağlamanız yerine kodlarınızı açıklayabilir misiniz? Teşekkürler. –

+0

Bu çözüm, rastgele çiftin yarıçapın 2 dairesinin içine kaç kez sığabileceği anlamına gelir. – runnerrunner

0

Burada iki sayaçları gerekir. Toplam puan sayısı (i) ve dairenizdeki r <= 2 (bu bir isInside numaralı telefonu arıyorum) sayısı için bir tane. Yalnızca isInside sayacını noktaya dahil etmek istiyorsanız, noktanız (r <= 2) içinde kalıyorsunuz.

bir karşı değişken, döngünün önce sıfıra başlatıldı ve ardından her zaman artırılır değil neden sadece koşul karşılandığında saymak istiyorsanız
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