Добрый день, гольфисты,
Наша задача на сегодняшний день вдохновлена комиксами XKCD 356 и 370 . Мы собираемся написать программу для расчета сопротивления группы резисторов. Предупреждая, что это почти достаточно сложно, чтобы оправдать проблему кода, однако я думаю, что есть определенный навык в написании немного более сложных программ в формате гольфа. Наименьшее количество символов выигрывает.
Расчет сопротивления основывается на следующих двух формулах:
- Если резисторы включены последовательно, сопротивление является суммой сопротивления каждого резистора.
- Если резисторы параллельны, сопротивление является обратной величиной суммы обратных сопротивлений каждого резистора.
Итак - например:
Ваша задача состоит в том, чтобы при минимальном количестве символов рассчитать сопротивление группы из 64 резисторов. Мои извинения за сложность, особенно правила ввода. Я попытался определить их таким образом, чтобы каждый язык был пригоден для использования.
Каждый резистор будет подключен к 2 или более другим резисторам.
Вход гарантированно действителен, только с одним входом и одной точкой выхода, которая соединит
Сеть будет параллельной, чтобы не требовалось больше математики, чем указано
Ввод будет через файл, аргумент или стандартный ввод, в зависимости от того, что подходит для вашего языка.
Входные данные будут состоять из ряда разделенных операторов новой строки или косой черты, состоящих из целого числа сопротивления резистора и пробелов, разделяющих идентификаторы резисторов, к которым подключена одна сторона резистора.
Идентификатор первого резистора будет 1, увеличиваясь на единицу для каждого последующего резистора
Старт всегда будет иметь идентификатор 0
Конечный резистор всегда будет иметь сопротивление 0 Ом, и в его линии будут только те соединения, которые определены
Например:
Может быть представлен как
3 0
6 1
1 0
5 0
0 2 3 4
- Вывод может быть в стандартный вывод или файл. Это может быть представлено одним из следующих способов:
- Число с минимум двумя десятичными разрядами, за которым следует новая строка
- Часть, состоящая из целого числа (числитель), косой черты и другого целого числа (знаменатель), за которым следует символ новой строки. Фракция не обязательно должна быть в ее самой низкой форме - например, 4/4 или 10/8 приемлемы. Фракция должна быть точной в пределах 1/100. Бонус за то, что он абсолютно точен, не предоставляется - это костыль, позволяющий конкурировать языкам без операций с фиксированной или плавающей запятой.
Я надеюсь, что это охватывает все моменты. Удачи!
1 2/1 0/0 1
действительным?
/
это не обратный слеш Вы имели в виду `\` или косую черту?