Соревнование
Простая задача «шпион против шпиона».
Напишите программу со следующими характеристиками:
- Программа может быть написана на любом языке, но не должна превышать 512 символов (как представлено в блоке кода на этом сайте).
- Программа должна принимать 5 знаковых 32-битных целых в качестве входных данных. Он может принимать форму функции, которая принимает 5 аргументов, функции, которая принимает один массив из 5 элементов, или полной программы, которая считывает 5 целых чисел из любого стандартного ввода.
- Программа должна вывести одно 32-разрядное целое число со знаком.
- Программа должна возвращать 1 в том и только в том случае, если пять входов, интерпретируемых как последовательность, соответствуют определенной арифметической последовательности по выбору программиста, называемой «ключом». Функция должна возвращать 0 для всех остальных входов.
Арифметическая последовательность обладает тем свойством, что каждый последующий элемент последовательности равен своему предшественнику плюс некоторая фиксированная константа a
.
Например, 25 30 35 40 45
является арифметической последовательностью, поскольку каждый элемент последовательности равен его предшественнику плюс 5. Аналогично, 17 10 3 -4 -11
это арифметическая последовательность, поскольку каждый элемент равен его предшественнику плюс -7.
Последовательности 1 2 4 8 16
и 3 9 15 6 12
не являются арифметическими последовательностями.
Ключом может быть любая арифметическая последовательность по вашему выбору, с единственным ограничением, что последовательности с целочисленным переполнением не допускаются. То есть последовательность должна строго увеличиваться, строго уменьшаться или иметь все элементы равными.
В качестве примера предположим, что вы выбрали ключ 98021 93880 89739 85598 81457
. Ваша программа должна вернуть 1, если входы (последовательно) соответствуют этим пяти числам, и 0 в противном случае.
Обратите внимание, что средства защиты ключа должны быть вашего собственного нового дизайна. Кроме того, вероятностные решения, которые могут возвращать ложные срабатывания с любой ненулевой вероятностью, не допускаются. В частности, пожалуйста, не используйте никаких стандартных криптографических хэшей, включая библиотечные функции для стандартных криптографических хэшей.
Скоринг
Самые короткие не взломанные представления на количество персонажей будут объявлены победителями.
Если есть путаница, пожалуйста, не стесняйтесь спрашивать или комментировать.
Встречный вызов
Всем читателям, включая тех, кто представил свои собственные программы, предлагается «взломать» материалы. Отправка взламывается, когда ее ключ публикуется в соответствующем разделе комментариев. Если представление сохраняется в течение 72 часов без изменения или взлома, оно считается «безопасным» и любой последующий успех в взломе будет проигнорирован ради контеста.
См. «Отказ от ответственности» ниже для получения подробной информации об обновленной политике оценки взлома.
Взломанные материалы исключаются из спора (при условии, что они не «безопасны»). Они не должны редактироваться. Если читатель хочет представить новую программу (ы), он должен сделать это в отдельном ответе.
Взломщики с наивысшим количеством баллов будут объявлены победителями вместе с разработчиками победивших программ.
Пожалуйста, не взламывайте ваши собственные представления.
Удачи. :)
Leaderboard
Предпоследний зачет (в ожидании безопасности представления Дениса CJam 49).
Безопасные шкафчики
- CJam 49, Деннис
- CJam 62, Денис Сейф
- CJam 91, сейф Денниса
- Питон 156, Maarten Baert сейф
- Perl 256, безопасный для чилимагов
- Java 468, Geobits безопасно
Неостановимые крекеры
- Питер Тейлор [Ruby 130, Java 342, Mathematica 146 *, Mathematica 72 *, CJam 37]
- Деннис [Pyth 13, Python 86 *, Lua 105 *, GolfScript 116, C 239 *]
- Мартин Бюттнер [Javascript 125, Python 128 *, Ruby 175 *, Ruby 249 *]
- Тийло [C 459, Javascript 958 *]
- Фреддиекнец [Mathematica 67 *]
- Илмари Каронен [Python27 182 *]
- закись азота [C 212 *]
* несоответствующая подача
Отказ от ответственности (Обновлено 23:15 EST, 26 августа)
Когда проблемы с оценками наконец достигли критической массы (учитывая, что две трети взломанных представлений пока не соответствуют), я оценил лучшие взломщики с точки зрения количества взломанных отправлений (основной) и общего количества символов в совместимых взломанных отправках. (вторичные).
Как и прежде, точные данные о взломе, длительность представлений и их статус соответствия / несоответствия помечены так, чтобы читатели могли сделать вывод о своих собственных рейтингах, если они считают, что новые официальные рейтинги несправедливы.
Приношу свои извинения за внесение изменений в правила в конце игры.