serikov

mini_ceo-12

Aug 6th, 2025
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. import numpy as np
  2.  
  3. # Центры и радиусы
  4. c1 = np.array([0, 0])
  5. r1 = 1
  6. c2 = np.array([3, 1])
  7. r2 = 2
  8. c3 = np.array([3, 5])
  9. r3 = 2
  10.  
  11. min_abs_c = float('inf')
  12. best_c = None
  13.  
  14. # Перебор углов с шагом 0.1 градуса (~3600x3600 комбинаций)
  15. theta1_grid = np.linspace(0, 2*np.pi, 3600)
  16. theta2_grid = np.linspace(0, 2*np.pi, 3600)
  17.  
  18. for theta1 in theta1_grid:
  19.     a = c1 + r1 * np.array([np.cos(theta1), np.sin(theta1)])
  20.     for theta2 in theta2_grid:
  21.         b = c2 + r2 * np.array([np.cos(theta2), np.sin(theta2)])
  22.         c = a + b
  23.         if abs(np.linalg.norm(c - c3) - r3) < 1e-3:
  24.             abs_c = np.linalg.norm(c)
  25.             if abs_c < min_abs_c:
  26.                 min_abs_c = abs_c
  27.                 best_c = c
  28.  
  29. print(f"Минимальное значение |c|: {min_abs_c:.3f}")
  30. print("Координаты c:", best_c)
  31.  
Advertisement
Add Comment
Please, Sign In to add comment