gt22

Сопротивление

Nov 22nd, 2018
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. import numpy as np
  2.  
  3.  
  4. # Функция, считающая сопротивление для набора резисторов
  5. def calc_r(r1, r2, r3, r4, r5, r6):
  6.     r23 = r2 + r3  # 2 и 3 - последовательно
  7.     r45 = r4 + r5  # 4 и 5 - последовательно
  8.     r236 = (r23 * r6) / (r23 + r6)  # [2,3] и 6 - параллельно
  9.     r1236 = r1 + r236  # 1 и [2, 3, 6] - последовательно
  10.     return (r45 * r1236) / (r45 + r1236)  # [4, 5] и [1, 2, 3, 6] - параллельно
  11.  
  12.  
  13. # Массив всех возможноых сопротевление
  14. ans = []
  15. # Доступные номиналы резисторов (13 штук)
  16. r = [100, 120, 150, 180, 220, 270, 330, 390, 470, 560, 680, 820, 1000]
  17.  
  18. # Перебираем все возможные комбинации (13^6 штук)
  19. for r1 in r:
  20.     for r2 in r:
  21.         for r3 in r:
  22.             for r4 in r:
  23.                 for r5 in r:
  24.                     for r6 in r:
  25.                         # Считаем сопротивление, и добавляем в ответ
  26.                         ans.append(calc_r(r1, r2, r3, r4, r5, r6))
  27.  
  28. # Считаем среднее
  29. # В задаче написано 'матожидание', но в нашем случае оно равно среднему
  30. # Если считать его честно, то надо для каждого значения считать количество значений,
  31. # делить на количество уникальных занчений среди всех элементов, умножать на само значение, и суммировать,
  32. # что явно сложнее...
  33. print(np.mean(ans))
  34.  
  35.  
  36.  
  37.  
  38.  
  39. Шутка на тему:
  40. Экспериментальным путём было установлено, что сопротивление проводника больше, чем сопротивление проводницы.
  41.  
  42. https://xkcd.com/356/
Advertisement
Add Comment
Please, Sign In to add comment