Змагання
Простий виклик "шпигун проти шпигуна".
Напишіть програму з такими специфікаціями:
- Програма може бути написана будь-якою мовою, але не повинна перевищувати 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 годин, не змінюючись чи не розбиваючись, воно вважається "безпечним", а будь-який наступний успіх у злому буде ігнорований заради змагань.
Докладнішу інформацію щодо оновленої політики щодо розбиття балів див. У розділі "Відмова" нижче.
Зламані подання виключаються із суперечок (за умови, що вони не є "безпечними"). Їх не слід редагувати. Якщо читач бажає подати нову програму, він повинен зробити це окремою відповіддю.
Злам (и) з найвищим балом (і) будуть оголошені переможцями разом із розробниками програм-переможців.
Будь ласка, не зламайте власне подання.
Удачі. :)
Таблиця лідерів
Передостаннє класифікація (очікує на безпеку подання Денніса на CJam 49).
Безпечні шафки
- CJam 49, Денніс
- CJam 62, Денніс сейф
- CJam 91, Денніс сейф
- Python 156, Maarten Baert сейф
- Perl 256, чилімагічний сейф
- Java 468, Геобіт безпечний
Крекери без зупинки
- Пітер Тейлор [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 *]
- freddieknets [Mathematica 67 *]
- Ільмарі Каронен [Python27 182 *]
- азотний [C 212 *]
* невідповідність подання
Відмова (оновлено 23:15 EST, 26 серпня)
Оскільки проблеми з підрахунковим рахунком, нарешті, досягають критичної маси (з огляду на те, що дві третини тріщин поданих досі не відповідають вимогам), я класифікував найкращі сухарики за кількістю поданих тріщин (первинних) та загальною кількістю символів у відповідних тріщинах. (вторинний).
Як і раніше, розбиті точні матеріали, тривалість подань, а також їх відповідність / невідповідність статусу позначаються таким чином, що читачі можуть зробити власні рейтинги, якщо вони вважають, що нові офіційні рейтинги є несправедливими.
Мої вибачення за внесення змін до правил цього пізно в грі.