我想从均匀分布中绘制公司类型 0 和 1 的位置,并使用 Python 中的 OOP 概念计算这两种类型之间的距离。
class Firm_loc:
def __init__(self,type):
self.type = type
self.random_location()
def random_location(self):
self.location = uniform(0,1), uniform(0,1)
def distance(self,other):
xx = (self.location[0] - other.location[0])**2
yy = (self.location[1] - other.location[1])**2
return sqrt(xx+yy)
firms = [Firm_loc('Firm_type_0') for i in range(5)]
firms.extend=[Firm_loc('Firm_type_1') for i in range(5)]
问题1:从这里开始,我被卡住了。我必须调用距离方法来计算两种公司类型(即自我和其他)之间的每一个距离,并将它们保存到一个列表中。任何帮助,将不胜感激。
问题 2:除了上述代码之外,还有其他更短、更高效的代码吗?
问题 3:由于两种类型的成对计算,我正在尝试在 OOP 中使用“自我和其他”的概念。如何根据传统的程序方法重写代码?
编辑:
感谢您的回答,但至于距离,我必须有 5x5=25 距离,如下所示:
Firm_type_0 Firm_type_1 Distance
f0_0 f0_1 D(f0_0, f0_1)
f0_0 f1_1 D(f0_0, f1_1)
f0_0 f2_1 D(f0_0, f2_1)
f0_0 f3_1 D(f0_0, f3_1)
...
我认为这两个答案不会产生这些距离。