gt22 icon

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

gt22 | PRO | 11/22/18 06:21:16 PM UTC | 0 ⭐ | 966 👁️ | Never ⏰ | []
Python |

1.96 KB

|

None

|

0 👍

/

0 👎

import numpy as np
 
 
# Функция, считающая сопротивление для набора резисторов
def calc_r(r1, r2, r3, r4, r5, r6):
    r23 = r2 + r3  # 2 и 3 - последовательно
    r45 = r4 + r5  # 4 и 5 - последовательно
    r236 = (r23 * r6) / (r23 + r6)  # [2,3] и 6 - параллельно
    r1236 = r1 + r236  # 1 и [2, 3, 6] - последовательно
    return (r45 * r1236) / (r45 + r1236)  # [4, 5] и [1, 2, 3, 6] - параллельно
 
 
# Массив всех возможноых сопротевление
ans = []
# Доступные номиналы резисторов (13 штук)
r = [100, 120, 150, 180, 220, 270, 330, 390, 470, 560, 680, 820, 1000]
 
# Перебираем все возможные комбинации (13^6 штук)
for r1 in r:
    for r2 in r:
        for r3 in r:
            for r4 in r:
                for r5 in r:
                    for r6 in r:
                        # Считаем сопротивление, и добавляем в ответ
                        ans.append(calc_r(r1, r2, r3, r4, r5, r6))
 
# Считаем среднее
# В задаче написано 'матожидание', но в нашем случае оно равно среднему
# Если считать его честно, то надо для каждого значения считать количество значений,
# делить на количество уникальных занчений среди всех элементов, умножать на само значение, и суммировать,
# что явно сложнее...
print(np.mean(ans))
 
 
 
 
 
Шутка на тему:
Экспериментальным путём было установлено, что сопротивление проводника больше, чем сопротивление проводницы.
 
https://xkcd.com/356/

Comments