import math import random class Circle: def __init__(self): self.x = round(random.uniform(0, 1), 4) self.y = round(random.uniform(0, 1), 4) self.diameter = round(random.uniform(0.1, 0.5), 4) self.radius = self.diameter / 2 self.area = math.pi * (self.radius**2) if __name__ == '__main__': circleamount = 5 circles = {chr(ord("a") + i): Circle() for i in range(circleamount)} overlaps = {chr(ord("a") + i): [] for i in range(circleamount)} for c1_id, c1 in tuple(circles.items()): isinner = False for c2_id, c2 in tuple(circles.items()): if c1_id == c2_id: continue distance = math.sqrt((c2.x - c1.x)**2 + (c2.y - c1.y)**2) if distance >= c1.radius + c2.radius: pass elif c1.radius + distance <= c2.radius: isinner = True break else: overlaps[c1_id].append(c2_id) if isinner: del overlaps[c1_id] for c_indx, c in tuple(circles.items()): print(f"Circle {c_indx}:") print(f"- x, y = {c.x}, {c.y}") print(f"- r = {c.radius}") if c_indx not in overlaps: print(f"Circle {c_indx} is inside another circle.\n") elif len(overlaps[c_indx]) == 0: print(f"Circle {c_indx} doesn't overlap.\n") else: print(f"Circle {c_indx} overlaps with circles: {overlaps[c_indx]}\n")