Напишите программу или функцию, которая принимает входные данные: все доступные резисторы и значение сопротивления и выводит истинное значение того, возможно ли получить сопротивление с помощью этих резисторов.
Правила:
Подойдет любой формат для ввода.
Будет как минимум 1 доступный резистор, и ваша программа должна вывести минимум 10 доступных резисторов.
Сопротивление всех доступных резисторов и требуемое сопротивление будут положительными целыми числами.
Для доступных резисторов, если также возможно дробное значение, требуемое сопротивление может быть приблизительным значением (см. Пример).
Выходные данные должны быть любыми 2 уникальными значениями для Возможного и Не возможного.
Резисторы могут быть подключены любым способом.
Последовательное сопротивление: для n последовательных сопротивлений: Результат = R1 + R2 + R3 + .... Rn
Параллельное сопротивление: Для n параллельных сопротивлений: Результат = 1 / (1 / R1 + 1 / R2 + 1 / R3 + .... + 1 / Rn)
Схема может не требовать от всех резисторов получения необходимого сопротивления (в этом случае выведите True).
Победитель:
Это код-гольф, поэтому выигрывает самый короткий код.
Примеры:
R List
110 220,220 -> True
440 220,220 -> True
550 400,300 -> False
3000 1000,3000 -> True
750 1000,3000 -> True
333 1000,1000,1000 -> True (1000||1000||1000=333.333)
667 1000,1000,1000 -> True ((1000+1000)||1000=666.6666)
8000 1000,1000,7000 -> True
190 100,200,333,344,221 -> True
193 105,200,333,344,221 -> True
400 200,100 -> False
Пояснения к последним двум примерам: /physics/22252/resistor-circuit-that-isnt-parallel-or-series
3 3 1
,3 3 2
?