Je rencontre des problèmes en appelant la méthode aleatorio()
de ma classe. Je dois créer un point aléatoire p
en utilisant la méthode aleatorio()
de ma classe ponto
, donc je peux l'utiliser dans ma classe retangulo
avec la méthode interior()
, pour vérifier si le point aléatoire se trouve à l'intérieur de chacun de mes deux rectangles, r1
et r2
. Cependant, il semble que je ne suis pas en mesure de générer le point aléatoire p
dont j'ai besoin.Comment appeler la méthode?
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)
Comme suggéré j'ai ajouté l'impression de d1,d2
qui retourne: 0 0
. d1
et d2
sont censés être le nombre de fois que mon point aléatoire tombe à l'intérieur r1
et r2
, respectivement. Je suppose que 0
signifie soit que je ne génère pas le point aléatoire, soit que je ne compte simplement pas le nombre de fois où il tombe à l'intérieur correctement, mais je ne suis pas sûr de la raison.
Veuillez fournir la preuve du problème. Par exemple, insérez quelques instructions d'impression pour afficher la sortie du problème. – Prune
Je n'ai aucun problème à obtenir des numéros de l'appel. Qu'est-ce qui vous dit exactement qu'il n'y a pas de point aléatoire? – Prune
Le seul problème que je peux trouver dans ce code est le complètement inutile 'pour r dans la gamme (10000):'. –