Я попросил random.org для 128 случайных целых чисел от 0 до 2 32 - 1. Поскольку генератор случайных чисел очень хотел сначала дать первые 64 числа, они, очевидно, более случайны, чем остальные 64.
Напишите полную программу или функцию, которая возвращает достоверный результат, если введено одно из следующих 64 целых чисел:
[1386551069, 1721125688, 871749537, 3410748801, 2935589455, 1885865030, 776296760, 614705581, 3841106923, 434616334, 1891651756, 1128215653, 256582433, 310780133, 3971028567, 2349690078, 489992769, 493183796, 3073937100, 3968540100, 777207799, 515453341, 487926468, 2597442171, 950819523, 1881247391, 3676486536, 3852572850, 3498953201, 2544525180, 297297258, 3783570310, 2485456860, 2866433205, 2638825384, 2405115019, 2734986756, 3237895121, 1560255677, 4228599165, 3106247743, 742719206, 2409129909, 3008020402, 328113612, 1081997633, 1583987616, 1029888552, 1375524867, 3913611859, 3488464791, 732377595, 431649729, 2105108903, 1454214821, 997975981, 1764756211, 2921737100, 754705833, 1823274447, 450215579, 976175934, 1991260870, 710069849]
И результат фальши для остальных 64 чисел:
[28051484, 408224582, 1157838297, 3470985950, 1310525292, 2739928315, 3565721638, 3568607641, 3857889210, 682782262, 2845913801, 2625196544, 1036650602, 3890793110, 4276552453, 2017874229, 3935199786, 1136100076, 2406566087, 496970764, 2945538435, 2830207175, 4028712507, 2557754740, 572724662, 2854602512, 736902285, 3612716287, 2528051536, 3801506272, 164986382, 1757334153, 979200654, 1377646057, 1003603763, 4217274922, 3804763169, 2502416106, 698611315, 3586620445, 2343814657, 3220493083, 3505829324, 4268209107, 1798630324, 1932820146, 2356679271, 1883645842, 2495921085, 2912113431, 1519642783, 924263219, 3506109843, 2916121049, 4060307069, 1470129930, 4014068841, 1755190161, 311339709, 473039620, 2530217749, 1297591604, 3269125607, 2834128510]
Любой ввод, кроме одного из этих 128 чисел, является неопределенным поведением.
Если ваше решение найдено программно, пожалуйста, поделитесь кодом, использованным для его создания!
Это код-гольф , поэтому выигрывает самое короткое решение в байтах.
code-golf
number
random
classification
decision-problem
lirtosiast
источник
источник
"Maybe, not enough information."&
33 байта, отвечает на вопрос.[4 20 79]
от[8 18 100]
может быть выполнено[99 79 20 17 7 4]
(посмотрите, можете ли вы определить шаблон). Конечно, начальная половина вашего ответа может использовать гораздо меньший модуль, чем вход, но задняя половина состоит из сдвига одного элемента за раз.Ответы:
CJam,
535247 байтовТам есть непечатаемые, но две строки могут быть получены
соответственно. Это также показывает, что кодовые точки ниже 256.
Это цепной ответ по модулю, где мы применяем следующие модули к входному целому числу по порядку:
Поскольку этот список содержит целые числа больше 255, список кодируется с использованием двух символов в каждом. Декодирование выполняется путем
2/Dfb
, который разбивает строку на куски длиной два и преобразует каждый из базового числа 13 (например88*13 + 9 = 1153
). Однако есть два исключения для декодирования:136
) не включен (см. Ниже),242
) меньше 256, и разбиение массива нечетной длины на куски размера 2 оставит массив размера 1 в конце. Спасибо @ MartinBüttner за этот совет!После того, как по модулю уменьшено входное целое число до сравнительно небольшого числа, мы выполняем поиск по таблице. Эта таблица кодируется через вторую строку, которая преобразуется в базовое
312
число, затем декодируется в базовое число 2, которое мы индексируем. Так как индексирование массивов в CJam завершено, мы можем опустить окончательный модуль, как упоминалось ранее.Попробуй это онлайн | Тестирование
источник
Сетчатка , 117 байт
Regex golf ответ, выводящий положительное целое число для правды и ноль для фальсификации.
Попробуйте онлайн! | Тестовый набор - правда | Тестовый набор - фальшивка | Regex101
источник
JavaScript (ES6) 233
Анонимная функция, возвращающая 0 как
falsy
и ненулевое какtruthy
Проверка последних 3 цифр в числовом представлении в базе 36.
Строка проверки построена так:
Тестовое задание
источник
Mathematica,
218217 байтПо какой-то причине существует набор модулей, который позволяет нам различать два набора только по тому, является ли результат после применения модулей нулевым или нет. Длинный список модулей был сгенерирован этой программой:
Первый вывод - это модули, второй и третий выходы - это два списка с применением модулей. Два длинных списка - это наборы.
источник
PowerShell, v3 + 194 байта
Немного другой подход, поэтому я решил опубликовать его. Это не собирается выигрывать кратчайшие, но это может дать кому-то еще идеи по сокращению их кода.
Мы по-прежнему берем входное целое число
$args[0]
и применяем к нему операции по модулю, так что ничего особенного там нет. Выше мы используем-in
оператор (следовательно, требование v3 +), поэтому он будет выводитьTrue
значения, которые находятся в истинном тестовом примере.Тем не менее, я пытаюсь найти результирующие массивы, где мы можем использовать
..
функцию диапазона, чтобы сократить количество байтов, но при этом все еще иметь разные массивы между значениями truey и falsey. Мы можем сделать это, поскольку поведение, отличное от входных данных truey / falsey, не определено, поэтому, если диапазон захватывает значения за пределами входных данных truey / falsey, выход не имеет значения.Пока это довольно ручной процесс, так как цель состоит в том, чтобы попытаться найти модуль по модулю, в котором один из массивов истинного или ложного имеет большой (ые) разрыв (ы) между числами, а другой массив содержит большое количество чисел в этом промежутке. До сих пор я в основном чувствовал интуицию и интуицию, но в конечном итоге я могу написать грубую игру, чтобы решить эту проблему. Вышеуказанное является самым коротким из найденных мной (в основном вручную).
источник