Вдохновленный старым руководством ...
Соревнование
Я определяю a- й вектор суффикса b как логический список длины a с b конечными истинными значениями.
Напишите программу или функцию, которая с помощью a и b любым способом возвращает вектор a- го суффикса b любым способом.
Теперь это может показаться тривиальным, но здесь есть одна загвоздка: ваш счет - это число байтов плюс самый ранний год, когда ваше решение сработало.
правила
Применяются все стандартные правила, за исключением того, что также могут использоваться языки и языковые версии, выпущенные после этого испытания.
Выведите, используя любое представление логических значений, которое использует ваш язык, например 1
/ 0
, True
/ False
, TRUE
/ FALSE
, "True"
/ "False"
и т. Д.
Вывод с использованием любых представления списков , что ваш язык использует, например 0 0 1
, [False,False,True]
, (FALSE;FALSE;TRUE)
, {"False","False","True"}
и т.д.
Вы можете предположить, что a ≥ b всегда верно и что они имеют соответствующий тип данных.
Контрольные примеры
Учитывая a = 7 и b = 3, вернуть0 0 0 0 1 1 1
Учитывая a = 4 и b = 4, вернуть[True,True,True,True]
Учитывая a = 2 и b = 0, вернуть(FALSE;FALSE)
Учитывая a = 0 и b = 0, вернуть{}
Пример решения и оценки
Я мог бы хотеть представить решение, {⌽⍺↑⍵⍴1}
используя Dyalog APL. Это было бы общим числом 8. Это динамическая функция, которая работает с версией 8.1 Dyalog APL, выпущенной в 1998 году, поэтому мой общий балл за 2006 год. Мой представленный ответ должен выглядеть примерно так:
# Dyalog APL 8.1, 1998 + 8 = 2006
{⌽⍺↑⍵⍴1}
Optional explanation...
Recommended: Link to documentation showing when the features you used were released.
Самый низкий балл побеждает!
источник
Ответы:
APL \ 360, 1968 + 3 байта = 1971
Встроенный из учебника @NBZ связан с. Я не знаю, почему @NBZ сказал, что он получит 1970 баллов, потому что APL \ 360 не был реализован до 1968 года, и более ранние APL, такие как APL \ 1130, не имели векторной функции суффикса (см. Страницу 208 здесь ).
источник
Далее, 1970 + 38 = 2008
использование:
7 3 s
печатает "0 0 0 0 -1 -1 -1"источник
sv
и нетs
, или что-то еще один байт?APL, 1968 + 5 = 1973
До 5 символов:
Старая версия:
Ну, вы на самом деле уже дали ответ, я просто удалил определение динамической функции и проверил, что это работает в 1968 году. Для справки вот руководство:
http://www.softwarepreservation.org/projects/apl/Books/APL360ReferenceManual
источник
САС, 1966 + 45 = 2011
Время SAS сиять!
SAS не был впервые опубликован до 1972 года, но этот шаг с данными использует только самые базовые функции, которые, я уверен, были бы доступны даже в самых ранних предварительных версиях, начиная с 1966 года, поэтому я полагаю, что это сработало бы тогда. Ввод идет после
a=
иb=
, а вывод выводится в журнал.Я был бы удивлен, если бы у кого-нибудь еще была IBM System / 360 с верной версией SAS, чтобы действительно это проверить!
источник
Мышь-1979 , 1979 + 19 = 1998
Перевод: Forth .
Спецификация действительно загадочна для меня, но я думаю, что это правильно.
источник
&Tuck
было доступно до версии 2002 года. И петли кажутся бесконечными.TI-Basic, 1990 + 21 = 2011
Первый калькулятор TI, над которым работает эта программа, - TI-81, выпущенный в 1990 году.
Редактировать: заметил, что я должен поддерживать пустой список ... увеличил код на 4 байта
Тестовые случаи
источник
Ans
приемлемый метод вывода, если он не напечатан.Prompt
иseq(
это однобайтовые токены, а остальные символы по одному байту каждый.Ans
- это способ вернуть значение по умолчанию в серии TI-83 Basic. Кроме того, при запуске программы последняя строка печатается автоматически. Таким образом, у вас есть лучшее из обоих миров.Mathematica 1.0, 1988 + 22 байта = 2010
Я не уверен, что это работает, просто просмотрел документацию по 10.3 и искал что-то, сказанное Появилось в 1988 (1.0)
источник
/.
и->
,Array
68k TI-Basic, 1995 + 25 = 2020
Первый калькулятор TI, над которым работает эта программа, - TI-92, выпущенный в 1995 году.
В отличие от серии TI-83, 68k TI-Basic поддерживает пустой список.
источник
Prompt
недопустимо в функции, и программа не может вернуть значение. Так что это должно быть введено на главном экране. С другой стороны,define f(a,b)=seq(x>a-b,x,1,a)
определяет допустимые функции, которые могут быть заданы в качестве аргументов a и b. (Проверено на моем TI-92 с 1995-09-13)define
и вызоваf(2,1)
или подобного для его токенизации размер, сообщаемый ОС, составляет 25 байт.Python 1.0, 1994 + 26 = 2020
Сохранено 2 байта благодаря DSM.
Лямбда была представлена с первым основным выпуском, 1.0
источник
МАТЛ , 2015 + 1 + 4 = 2020
Это работает с момента выпуска 6.0.0 языка (в нем используется неявный ввод, который был представлен в этом выпуске) от 31 декабря 2015 года.
Я добавил
1
к оценке в соответствии с комментарием @drolex, возможно, в разных локалях.Попробуйте онлайн!
объяснение
источник
J, 1990 + 8 = 1998
Argh. Изучал этот ответ, и кто-то добрался до APL, прежде чем я смог понять язык. Вот мое решение J вместо.
источник
Пролог, 1972 + 57 = 2029
Использование:
a(7,3,L).
будет унифицированоL
с[0,0,0,0,1,1,1]
.Я действительно не совсем уверен, когда
is
был реализован на языке, и я сомневаюсь, что вы действительно можете найти точную дату. Это довольно простая встроенная функция, поэтому я предполагаю, что она уже существовала, когда язык впервые появился в 1972 году .Не то чтобы это действительно важно, хотя, я далек от победы с этим ответом.
источник
SMP , 1983 + 28 байт = 2011
Я думаю, что понял это правильно ...
S
: 2.10, страница 48Ar
: 7.1, страница 102Map
: 7.2, страница 106$1
: 7.1, страница 104И если вы знакомы с Mathematica, нет,
Ar
не работает , как , что . Больше похоже наRange
+Select
.источник
(#>x&/.x->#)/@Range[#+#2]&
в Mathematica(#>x&/.x->#-#2)/@Range[#]&
Vim, 1991 + 21 = 2012
Вход выглядит так:
И вывод выглядит так:
Объяснение:
источник
B , 1971 + 54 = 2025
См. « Справочник пользователя по B » для руководства по этому типичному прекурсору C.
источник
Pyth, 2015 +
94 =20242019Спасибо @FryAmTheEggman за помощь!
Попробуй это здесь!
объяснение
источник
> <> , 2009 + 14 + 3 для -v = 2026
b
иa
должны быть предоставлены непосредственно в стеке-v
в обратном порядке.Вывод не разделен пробелом, как в примерах, но это, похоже, не идет вразрез с любым заявленным правилом. Он использует 0 и 1 для представления ложных и истинных значений, используемых языком.
Он не работает с текущей версией, поскольку
?
теперь извлекает тестовое значение из стека.Я не уверен, что каждая функция была реализована с первого дня,
-v
например, могла быть предоставлена позже как товар. Я постараюсь убедиться, что мой ответ правильный в эти выходные.источник
05AB1E , 2016 + 9 = 2025
Это, безусловно, может быть дальше, но вот начало: с. Код:
Попробуйте онлайн! Вход дан как b, a .
Также 9 байт:
0×1I×0ñRS
.источник
°
существовал ли он еще в 2016 году?)PowerShell v1, 2006 + 28 = 2034
Использует оператор запятой для создания массива (ов), который был в PowerShell с самого начала.
источник
Mathcad, 1998 + 42 = 2040
«байты» интерпретируются как количество различных символов клавиатуры (например, оператор «for» (включая одну строку программирования) представляет собой один символ ctl-shft- # или щелчок на панели инструментов программирования)).
Приведенный выше подсчет байтов предполагает, что определения a и b не учитываются в общем количестве; добавьте 4 байта для определений, если это предположение неверно.
Версия функции, показанная ниже, добавляет 5 байтов для определения и еще 3 байта для каждого использования (при условии, что значения a и b вводятся непосредственно).
Поскольку мое решение Mathcad должно явно играть на красных, а не на соревнованиях, я добавил таблицу решений. Обратите внимание, что поскольку Mathcad не имеет пустого массива, я использовал вместо него пустую строку (""); Я использовал 0, чтобы указать, где я не рассчитал пары b> a.
источник
PHP, 1995 + 56 байт = 2051
В разобранном видеисточник
Javascript ES6, 2015 + 46 = 2061
Возвращает массив из 0 и 1
Javascript ES6, 2015 + 50 = 2065
Возвращает строку
0
и1
символыJavascript, 1995 + 61 = 2056
Возвращает строку
0
и1
символыисточник
k ( kona ), 1993 + 15 = 2008
Создает список значений b True и объединяет его в список значений (ab) False.
источник
R , 20 байтов + 1993 = 2013
Попробуйте онлайн!
Возможно, это могло бы сработать в S, что привело бы к снижению показателя до 2008 года, но я не смог проверить это.
источник
SmileBASIC 3, 2014 + 25 = 2039
Первая общедоступная версия SmileBASIC 3, выпущенная в Японии с приложением SmileBASIC для Nintendo 3DS в ноябре 2014 года.
Печатает строку, где 0 - ложь, а 1 - истина (как они есть в самом языке.)
источник