Вызов
Напишите программу, которая принимает массив из 4 целых чисел ( который представляет собой последовательность чисел, сгенерированных определенным алгоритмом ) и возвращает следующее целое число, которое будет следовать.
Мы будем использовать только простые алгоритмы сложения, вычитания, умножения и деления с постоянным (то есть неизменным) изменением.
Для деления мы будем использовать floor
целочисленные значения: 133/4 = 33
и33/4 = 8
Вы можете предположить, что всегда будет одно допустимое возвращаемое значение
Контрольные примеры
[14,24,34,44]
должен вернуть 54 (Алгоритм сложения)
[105,45,-15,-75]
должен вернуть -135 (алгоритм вычитания)
[5,25,125,625]
должен вернуть 3125 (мультипликативный алгоритм)
[256,64,16,4]
должен вернуть 1 (алгоритм деления)
Основные правила
- Это код-гольф , так что кратчайший ответ в байтах побеждает.
- Стандартные лазейки запрещены
-81/4
, либо21 r 3
или-20 r -1
.Ответы:
05AB1E ,
181618 байтобъяснение
Попробуйте онлайн!
источник
[-325, -82, -21, -6]
Javascript (ES6),
444244 байта (исправлено)Сохранено 2 байта, следуя совету Исмаэля Мигеля.
Исправлена версия для
[2,1,0,0]
и[1,0,0,0]
как предложено edc65Версия 30 байтов
Для записи, моя первая попытка была
3230 байт, но мне не хватало поддержки floor () для деления. Это также не помогает в особых случаях, таких как[2,1,0,0]
и[1,0,0,0]
.демонстрация
источник
[a,b]=>
для параметров функции. Скобки обязательны.b*2==c+a
<=> алгоритма сложения / вычитанияBrachylog ,
373327 байтПопробуйте онлайн! или проверьте все контрольные примеры .
Сохранено 10 байтов благодаря @LeakyNun .
объяснение
Как указал LeakyNun, нам не нужен регистр вычитания, потому что он
I
может быть любым целым числом.источник
Haskell, 65 байт
источник
Python 2, 40 байт
Это буквально ответ JS, портированный на Python (спасибо @LeakyNun!). Мой предыдущий подход был смехотворно долгим, но вот он:
Python 2,
169166 байтВторой и третий уровни - это необработанная вкладка и необработанная вкладка плюс пробел, соответственно, что очень плохо работает с Markdown, поэтому вкладки были заменены на 2 пробела.
Довольно просто; пробует каждую константу и оператор, который, по ее мнению, может быть константой, затем, если комбинация константа / оператор работает для каждого элемента в списке (используя
try
/except
пару, чтобы избежатьZeroDivisionError
s), она печатает результат для последнего элемента в списке.Я уверен, что есть лучший метод, это наивный метод.
источник
[1,0,0,0]
которые должен вывести0
TSQL, 55 байт
Этот скрипт пытается добавить и вычесть в одной и той же проверке, затем он пытается умножить, если это не удается, это должно быть деление.
скрипка
источник
C #, 63 байта
Проверяет, является ли разница между первым и вторым элементом такой же, как разница между вторым и третьим элементом. Если это так, он делает сложение / вычитание, в противном случае он делает умножение / деление.
источник
JavaScript, 73 байта
Тесты :
Работает на них всех.
источник
Язык GameMaker, 70 байт
источник
Р,
6874Массив: 68 байт
4 входа: 45 байтов
Bonus решение с
log
,exp
,var
, 71 байтобновление: целочисленное деление
источник
b-a
чтобы сохранить байт (и я отмечаю, что ваши примеры вызовов добавляют пробелы обратно).261,65,16,4
возвращает,0.9961686
а не1
(конечно, в этом вопросе должен быть тестовый пример).Java,
125123 байтаGolfed:
Ungolfed:
Этот код, безусловно, имеет некоторые проблемы, поскольку он не обрабатывает деление на ноль и тому подобное. Конечно, это также не сработает, если во входном массиве больше (или меньше) 4 целых чисел
a
. Что делает его дурацким, но мне было весело :)Попробуйте это: https://ideone.com/nELH5I
источник
TI-Basic, 37 байт
Работает на любом калькуляторе TI-83/84
источник
Python 2,
75 66 6561 байтГораздо длиннее, чем моя предыдущая 38-байтовая запись, которая не обслуживала серию разделов правильно (как и большинство других).
Тестовые случаи и более крайние случаи на ideone
Примечание: целочисленное деление для отрицательного числа здесь определяется как наличие остатка с тем же знаком, что и делитель, так
-81/4
что будет-21
с остатком3
и-81/-4
будет20
с остатком-1
.источник
-81/-4 != -21
Желе , 14 байт
Попробуйте онлайн!
источник
Pyth, 18 байт
Принимает ввод как разделенный символом новой строки список значений.
Попробуйте онлайн!
Объяснение:
источник