Ваша задача - если вы ее принимаете - написать программу, которая поможет понять мое предложение по мета-методу путем расчета победителя соревнования кода . Конечно, ответы на этот вопрос будут рассматриваться как предложенные, поэтому ваша программа (если она правильная) может рассчитать, станет ли ваш ответ принятым.
правила
- Программа читает файл с несколькими строками следующего формата (см. Пример ниже): [Язык] TAB [NumberOfCharacters] TAB [LinkToAnswer]
- Имя файла передается в качестве аргумента вашей программе, или файл перенаправляется на стандартный ввод вашей программы. Это ваш выбор, пожалуйста, укажите метод при ответе
- Ожидается, что формат ввода правильный. Там нет необходимости для обработки ошибок.
- Количество символов положительное. Ваша программа должна обрабатывать длину до 65535. 64 КБ должно хватить всем :-)
- Программа выводит те строки на стандартный вывод, которые соответствуют идее метапроекта, то есть
- выигрывает самый короткий код конкретного языка программирования (фаза сокращения)
- выигрывает самый длинный код среди всех языков программирования (фаза сортировки)
- в случае розыгрыша должны быть напечатаны все ответы одинаковой длины
- Порядок вывода не важен
- Хотя выигрывает самый длинный код, это не боулинг . Ваш код должен быть максимально коротким для вашего языка программирования.
- Ответы на редко встречающиеся языки программирования, которые не пытаются сократить код, заслуживают отрицательного ответа, потому что они пытаются обойти намерение такого рода вопроса. Если есть только один ответ для конкретного языка программирования, он будет рассматриваться как кандидат-победитель, так что вы можете начать использовать его код.
Пример входного файла (разделенного одиночными вкладками, если возникает проблема с форматированием):
GolfScript 34 http://short.url/answer/ags
GolfScript 42 http://short.url/answer/gsq
C# 210 http://short.url/answer/cs2
Java 208 http://short.url/answer/jav
C# 208 http://short.url/answer/poi
J 23 http://short.url/answer/jsh
Ruby 67 http://short.url/answer/rub
C# 208 http://short.url/answer/yac
GolfScript 210 http://short.url/answer/210
Ожидаемый результат (порядок не важен):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Обновить
Некоторые программы полагаются на тот факт, что существует один максимум (например, символьная программа C # 210). Полученный из реальности, кто-то может также написать программу GolfScript с 210 символами. Выход останется прежним. Я добавил такой GolfScript для ввода.
Обновление 2
Как и предполагалось, я пометил (все еще код-гольф), и крайний срок - 2014-03-06 (что выглядит как произвольная дата, но я вернусь в Германию из поездки тогда).
Окончательные результаты
Я решил проголосовать так:
- Ответы, в которых количество символов не может быть подтверждено, получают комментарий для объяснения количества.
- Ответы, которые можно легко уменьшить, получают комментарий, редактируют предложение и переходят к результату с меньшим значением счетчика. (Надеюсь, я видел это заранее).
- Ответы, которые не компилируются, получают отрицательный ответ. (Как оказалось, довольно сложная задача).
- Ответы, которые не являются игрой в гольф, получают отрицательную оценку (как уже описано в правилах).
- Ответы, которые дают ожидаемый результат, получают положительный ответ. Из-за некоторых ответов, которые не работают должным образом, я использую 4 разных входных файла и проверяю ожидаемый результат.
Наконец, победитель определяется путем предоставления таблицы квалификационных ответов в качестве входных данных для моей справочной программы (плюс двойная проверка результата вручную). Если бы мой собственный ответ был победным, я бы исключил его из списка. В случае нескольких победителей я бы выбрал только одного. Поэтому некоторые бонусы можно заработать:
- ответы, которые принимают больше информации, чем ожидалось (например, за пределами определенных диапазонов)
- ответы, которые используют умную идею сделать его коротким
Я сделал снимок ответов 6 марта 2014 года, 19:45 UTC + 1. Анализ продолжается. Проверка всех ответов сложнее, чем ожидалось ...