私のクラスのメソッドaleatorio()
を呼び出す際に問題があります。私はランダムなポイントが私のponto
クラスのメソッドを使用してランダムなポイントp
を作成する必要があるので、私はクラスのinterior()
メソッドでそれを使用することができます、 r1
およびr2
。しかし、それは私が必要とするランダムな点p
を生成することができないようです。 0 0
は:メソッドを呼び出す方法は?
from random import uniform
class ponto:
def __init__(self,x,y):
self.x=float(x)
self.y=float(y)
def aleatorio(self):
''' Ponto aleatorio com coordenadas 0.0 a 10.0 '''
self.x=uniform(0.0,10.0)
self.y=uniform(0.0,10.0)
class retangulo():
def __init__(self,a,b):
self.a=a
self.b=b
def interior(self,p):
''' Verifica se ponto no interior do retangulo '''
if p.x >= self.a.x and p.x <=self.b.x and p.y >=self.a.y and p.y<=self.b.y:
return True
return False
def area(self):
return self.a*self.b
a1=ponto(0.0,0.0)
b1=ponto(2.0,2.0)
r1=retangulo(a1,b1)
b2=ponto(4.0,4.0)
r2=retangulo(a1,b2)
p=ponto(0.4,0.9)
p.aleatorio()
d1=0
d2=0
for r in range(10000):
if r1.interior(p)==True:
d1+=1
elif r2.interior(p)==True:
d2+=1
print(d1,d2)
としては、私が返さd1,d2
のプリントを追加提案しました。 d1
とd2
は、私のランダムなポイントがr1
とr2
にそれぞれ入る回数であると考えられます。私は0
だと思いますが、私がランダムな点を生成していないこと、または正しく内部に入っている回数を数えていないことを意味していますが、理由は分かりません。
問題の徴候を示してください。たとえば、いくつかのprint文を挿入して問題の出力を表示します。 – Prune
私は電話から番号を取得するのに問題はありません。まさに、ランダムな点がないことをあなたに教えてくれるものは何ですか? – Prune
このコードで見つけることができる唯一の問題は、r in range(10000)ではまったく役に立たないことです。 –