Задачи
Все участники пытаются решить следующий список из 10 задач:
Считайте положительное целое число n из входных данных и верните сумму кубов первых n неотрицательных целых чисел.
Для ввода
1
это должно вернуться0
.Считайте положительное целое число n из входных данных и верните истинное значение тогда и только тогда, когда n - простое число Мерсенна .
Прочитайте непустой список из n целых чисел и введите их медиану .
Если n четное, используйте меньшее из двух средних значений.
Например, медиана
[1 4 3 2]
это2
.Считать целое число (положительное, отрицательное или 0) или строковое представление в базе 10 или унарное из входных данных и вернуть их цифры в неабинарном виде без начальных нулей (за исключением ввода 0).
Вывод может быть отформатирован любым удобным способом (цифры, массив, строка и т. Д.).
Возвращение
pneumonoultramicroscopicsilicovolcanoconiosis
.Проверьте текущую дату и
Happy New Year!
при необходимости верните в соответствии с григорианским календарем.Псевдослучайно выбирает 64 уникальных назначенных кодовых точки из блока Unicode CJK Unified Ideographs Extension-A (U + 3400 - U + 4DB5) и возвращает строку соответствующих символов.
Все возможные строки должны иметь одинаковую вероятность выбора.
Считайте две строки печатных символов ASCII из ввода и верните истинное значение тогда и только тогда, когда символ первой строки образует подпоследовательность второй строки.
Например,
abc
,axbxc
должен возвращать truthy иbac
,axbxc
должен вернуться falsy.
- Считайте многомерный прямоугольный массив целых чисел и целое число n из входных данных и верните измененный массив со всеми целыми числами, умноженными на n .
Считайте неотрицательное целое число n из входных данных и верните цепочку из n железнодорожных вагонов, как показано ниже.
Пример вывода для n = 3 :
______ ______ ______ | | | | | | ()--() ~ ()--() ~ ()--()
Вывод может быть окружен любым количеством пробелов, если это выглядит в примере.
Разъяснения
0 не является ни положительным, ни отрицательным.
Конечный пробел всегда разрешен в выходных данных.
Несколько частей ввода могут быть прочитаны в любом последовательном, удобном порядке.
правила
Ни один ответ не может решить две разные задачи на одном языке программирования. 1
Для каждого отдельного задания применяются стандартные правила игры в гольф .
В частности, вы можете отправлять программы или функции с обычными значениями по умолчанию для ввода / вывода , но не можете использовать эти лазейки .
Задача 5, по сути, представляет собой сложную задачу по Колмогорову , поэтому жесткое кодирование выходных данных не только разрешено, но и ожидается.
На каждого пользователя должен быть опубликован только один ответ, содержащий не более одного решения для каждой из задач.
Пожалуйста, отформатируйте ваш ответ как в следующем примере:
## Task 1, Python, 42 bytes <code goes here> Explanation, I/O, required Python version, etc. go here. --- ## Task 7, C, 42 bytes <code goes here> Explanation, I/O, required compiler (flags), etc. go here.
счет
За каждую решаемую задачу вы получаете одно очко.
Это означает, что вам не нужно решать все задачи для участия.
Если ваше решение для задачи n является самым коротким на этом языке программирования, вы получаете дополнительное очко.
Если ваше решение для задачи n является самым коротким из всех языков программирования, вы получаете дополнительное очко.
Бонусные баллы будут начисляться только один раз за каждую комбинацию языка задачи и каждого задания соответственно.
Как обычно, если два решения имеют одинаковое количество байтов, время публикации является прерывателем связи.
Если кто-то опередит вас позже, вы потеряете бонусные баллы, заработанные другим ответчиком.
Вы можете подать заявку в гольф, добавить / удалить языки из своего ответа или поменять языки, используемые для двух задач.
Каждый раз, когда кто-то редактирует свой ответ, все ответы сохраняются.
После того, как вы смените язык для задания, вы потеряете трудовой стаж. 2
Ответ с наибольшим количеством очков выигрывает. 3
Таблица лидеров для каждой задачи
<style>body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}</style><script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><table class=answer-list><thead><tr><td>Task<td>Author<td>Language<td>Score<tbody id=answers></table></div><table style=display:none><tbody id=answer-template><tr><td>{{TASK}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}</table><script>function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function process(){answers.forEach(function(e){var s=e.body_markdown.split("\n").filter(function(e){return"#"==e[0]});s.forEach(function(s){var r=s.match(NUMBER_REG)[0],t=(s.match(SIZE_REG)||[0])[0],a=s.match(LANGUAGE_REG)[1],n=e.owner.display_name;entries.push({task:r,user:n,language:a,size:t})})}),entries.sort(function(e,s){var r=e.task-s.task;return r?r:e.size-s.size});for(var e=0;e<entries.length;e++){var s=jQuery("#answer-template").html();s=s.replace("{{TASK}}",entries[e].task).replace("{{NAME}}",entries[e].user).replace("{{LANGUAGE}}",entries[e].language).replace("{{SIZE}}",entries[e].size),s=jQuery(s),jQuery("#answers").append(s)}}var QUESTION_ID=52152,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*.*?,\s*\[*([^,\]]+)/,entries=[];</script>
Комбинированный список лидеров (2015-07-30 20:00 UTC)
User / Task 1 2 3 4 5 6 7 8 9 A TOTAL Tie breaker (if any)
DLosc 2 2 3 2 2 2 2 3 2 2 22
Sp3000 2 2 2 2 2 3 2 2 2 2 21
Doorknob 2 2 2 2 2 2 2 2 2 2 20
mathmandan 2 2 2 2 2 2 2 2 2 2 20 Combined byte count.
MickyT 2 2 2 2 2 2 1 2 2 2 19
Alex A. 2 1 2 2 2 2 1 2 2 2 18
Jacob 2 2 2 2 2 1 0 0 0 2 13
alephalpha 2 2 2 0 2 2 0 0 2 0 12
Martin Büttner 2 0 0 2 2 0 0 2 2 2 12 Combined byte count.
kirbyfan64sos 1 2 2 0 2 X 0 2 0 3 12 Per-language wins.
Maltysen 3 0 0 0 3 2 1 X 2 0 11
plannapus 2 2 0 0 2 2 0 2 0 2 10
jimmy23013 0 0 2 3 0 0 3 2 0 0 10 Solved tasks.
Tom 0 3 0 0 2 2 0 X 3 0 10 Combined byte count.
FryAmTheEggman 1 0 2 0 2 0 2 0 2 0 9
Vioz- 1 0 2 2 2 2 0 0 0 0 9 Combined byte count.
Toby Speight 2 0 0 0 2 2 0 0 0 2 8
Ismael Miguel 0 0 0 0 2 2 0 0 0 2 6
Pulga 0 2 2 0 0 0 0 0 0 2 6 Combined byte count.
flawr 2 0 2 0 0 0 0 0 0 0 4
manatwork 2 0 0 0 0 2 0 0 0 0 4 Combined byte count.
TheNumberOne 1 0 0 0 2 0 0 0 0 0 3
Задачи, отмеченные значком X
, присутствуют, но недействительны.
Комбинированный список лидеров был построен вручную. Пожалуйста, сообщите мне, если есть какие-либо ошибки.
1 Языки считаются разными, если они не являются разными версиями одного и того же языка, поэтому есть только один JavaScript, один Python и один TI-BASIC, но C, C ++, Octave и MATLAB - это четыре разных языка.
2 Если вы решаете задачу n, используя язык L в x байтах, кто-то другой решает ту же задачу на том же языке с тем же количеством байтов, вы переходите на язык M и откатываете свои изменения, а другой отвечающий сохраняет бонусное очко.
3 Количество баллов, полученных за счет правил 1, 2 и 3 (в указанном порядке), объединенное количество байтов всех выполненных задач (чем ниже, тем лучше) и, наконец, подсчет голосов (чем выше, тем лучше) служат в качестве брейкбрейков.
Ответы:
Задача 1, GolfScript, 8 байт
Та же идея, что и у CJam- ответа Мартина .
Задача 2, QBasic,
7471 байтПротестировано на QB64 с выключенным расширением синтаксиса. 1 Основная часть программы проверяет, является ли данное число
a
простым, беряa
mod каждое число 2 <=i
<a
и умножая результаты. Результат равенr
0, если число не простое, и ненулевое в противном случае. Последняя строка использует побитовоеAND
с целочисленным делением на 2, чтобы проверить, является ли двоичное представлениеa
всех единицей, то естьa
имеет форму 2 n -1. Умножение на этоr
дает 0 (ложь), если число не является простым числом Мерсенна, а в противном случае - ненулевое (истинное) значение.?
это ярлык дляPRINT
.Самый большой из протестированных мною Мерсенна, 8191, дает результат -
1.#INF
который все еще правдив! (Я проверил сIF
заявлением, чтобы убедиться.)1 Это не меняет семантику программы. Если вы введете приведенный выше код в стандартную версию DOS QBasic, он будет автоматически отформатирован с дополнительными пробелами, но будет работать точно так же.
Задача 3, Pyth, 6 байт
Читает список в стиле Python из стандартного ввода. Основное волшебство здесь -
c
оператор перехода: при наличии int и списка он разбивает список на n частей. Таким образомc2SQ
разбивает отсортированный входной список пополам. Удобно, когда длина нечетная, первая половина больше, поэтому медиана всегда является последним элементом первой половины. Этоe
й изh
EAD результатов отбивной.Задача 4, CJam, 26 байт
Это может быть сокращено, я подозреваю.
Алгоритм:
Тот факт, что это цикл do-while, учитывает случай 0.
Задача 5, Bash, 50 байтов
Не так много, чтобы объяснить.
Задача 6, Python, 78 байт
Требуется Python 2. Здесь очень удобно использовать операторы неравенства в цепочке Python.
Задача 7, ActionScript, 82 байта
ActionScript является членом семейства ECMAScript. Этот код требует ActionScript 2 - гораздо лучше для кода гольф, потому что я использую устаревшие функции, как
chr
вместо версии 3String.fromCharCode
!Вывод на панель консоли:
Задача 8, Пип,
919 байтРешение для регулярных выражений не совсем сработало, поэтому здесь вместо этого используются строковые операции.
Github хранилище для Pip .
Принимает две строки как аргументы командной строки. Когда
a
есть подпоследовательность, выводит положительное целое число (истинно); в противном случае результат равен нулю (ложь), который не дает результата.Объяснение:
Задача 9, Пролог (SWI), 68 байт
Пролог, как правило, вообще не конкурентоспособен в коде, поэтому я очень доволен этим решением.
Определяет предикат
m
с входными параметрамиL
для списка, а такжеN
для числа и выходного параметраR
. Определениеm
тройной дизъюнкции:L
может быть унифицированы с[H|T]
, это список, по крайней мере , один элемент в нем. Вызовитеm
рекурсивно в начало и конец этого списка, и снова объедините результаты в новый список, который объединен сR
.L
могут быть объединены с[]
, унифицироватьR
с[]
а.L
предполагается число;L*N
рассчитывается и присваиваетсяR
.Пример запуска с использованием
swipl
Ubuntu:Задача 10, C,
114112106 байтПроверено
gcc
на Ubuntu. Определяет функцию,t
которая принимает целочисленный аргумент. Использует триfor
цикла для вывода, сильно сжатых из-за неправильного использования макросов. Использование символа возврата для удаления завершающего~
результата приводит к довольно странному пробелу, ноThe output may be surrounded by any amount of whitespace as long as it looks like in the example.
Пример прогона
t(3)
:источник
a.c
как подпоследовательностьabc
.Huzzah, первым, чтобы выполнить все задачи! \ О /
Задача 1, Perl, 32 байта
+1 байт за
-p
флаг. Комментарий: Perl странный .Задача 2, CJam, 14 байтов
Моя первая программа CJam!
Задача 3, GolfScript, 8 байт
Ввести стандартный ввод STDIN, отсортировать, взять длину, уменьшить, разделить на два, а затем взять элемент отсортированного массива по этому индексу.
Задача 4, Python, 77 байт
Спасибо @ mbomb007 за сокращение 24 (!) Байтов и @ Sp3000 за еще 11.
Задача 5, Java, 66 байт
Скучно. Здесь вырубили многословный язык, чтобы позже освободить место для языков игроков в гольф.
Задача 6, Баш, 39 байт
Спасибо @manatwork за то, что научили меня
%j
, сокращая 10 байт в процессе.Задача 7, JavaScript, 148 байт
Создайте строку из 64
x
-х, затем замените их все на функцию обратного вызова, которая возвращает случайный один из этих символов, если его еще нет в массиве используемых символов.Задача 8, Rust, 130 байт
Да, Руст очень плохо играет в гольф.
Задача 9, Страус, 18 байт
Версия 0.7.0 . Проверяет массив, выполняет ли регулярное выражение замену чисел на их умноженные версии, а затем снова удаляет полученную строку.
Задача 10, Ruby, 58 байт
"\n"
на один символ длиннее, чем"{actual newline}"
на один символ длиннее$/
. Спасибо @ MartinBüttner за то, что он сбрил {неопределенное, но большое количество} байтов с помощью различных приемов черной магии.источник
$(…)
→`…`
.[ `date +%j` = 001 ]
Или даже((`date +%j`<2))
. (Предполагаетсяdate
, что GNU поддерживает формат «% j день года (001..366)».)Задача 1, 3var,
1413 байт( Esolang вики-страница для 3var )
Принимает ввод через кодовую точку, например, пробел равен 32.
К счастью, все операции, которые нам нужны для реализации формулы,
n^2 (n-1)^2 / 4
- это одиночные символы (уменьшение, умножение и возведение в квадрат), но для установки значенияB
2 требуется 3 байта (сброс-приращение-приращение).Задача 2, Retina,
3833 байта( Github хранилище для Retina )
Каждая строка идет в отдельном файле, но вы можете проверить вышеизложенное с
-s
флагом (заменяя его<empty>
ничем). Ввод должен быть одинарным с 1, например,1111111
для 7.Вот что делает каждая подстановка регулярного выражения (заданная парой строк):
2
,1 + composite
илиnot power of 2
ничего.Это добавляет дополнительные
1
к простым числам Мерсенна, в то время как все остальные числа стираются.Задача 3, Ракетка, 71 байт
Лисп-подобные языки просто слишком многословны. Пример выполнения:
Задача 4,> <>, 31 байт
( Вики-страница Esolang для> <> )
Выше 28 байтов, и требует
-v
флаг в интерпретаторе Python для еще 3 байта , например, выполнить какПриятно то, что> <> здесь - это то, что мы можем вычислять цифры одну за другой по модулю и делению, что дает цифры в обратном порядке, что идеально подходит для распечатывания стека.
Задача 5, Parentetic,
14481386 байт( Github хранилище для Parenthetic )
У меня есть ответ CJam для этого, который короче самой строки, но я не могу использовать его, поэтому я решил пойти другим путем.
Python 3 генерирует код:
Вот соответствующий Lisp-подобный код:
Видимо было нормально переопределить
define
, назвавg
как()()
, что сэкономило много байтов.Задача 6, CJam, 26 байт
Проверяет, что
[month day]
часть массива местного времени меньше, чем[1, 2]
.Задача 7, Python, 73 байта
Просто простая реализация Python 3.
Задание 8, прелюдия,
4641 байт( Вики-страница Esolang для Prelude )
Я думаю, что это работает - это, вероятно, все еще пригодно для игры в гольф, но я впервые делаю нетривиальный гольф в Prelude. Формат входного сигнала
<needle>NUL<haystack>
, гдеNUL
находится0x00
. Это лучше всего работает сNUMERIC_OUTPUT = True
интерпретатором Python, так как это сделает его выводимым1
или0
соответствующим образом.Я выбрал Prelude, потому что есть два свойства, которые делают его очень хорошим для этой задачи:
Это было бы еще лучше, если бы у Prelude был оператор NOT.
Вот разбивка:
(-5 байт благодаря @ MartinBüttner)
Задача 9, Mathematica, 4 байта
Что-то вроде
2 {{0, 1}, {1, 0}}
неявного умножения в Mathematica, так что это просто помещает аргументы рядом.Как отмечают @MartinButtner и @alephalpha ,
1##&
это еще один 4-байтовый ответ. Смотрите первый для объяснения.Задача 10, Rail,
246237 байт( Esolang вики-страница для Rail )
Я не мог упустить возможность выполнить связанное с поездом задание в Rail :). Пустое пространство выглядит вполне подходящим для игры в гольф, но с разветвлением, занимающим три линии, для уплотнения потребуется немного работы.
Вводом является целое число через STDIN, но должен быть EOF. Верхняя левая часть
является циклом atoi, который преобразует входные данные в целое число, но не в EOF (проверяется
e
инструкцией).Функция
f
в трех последних строках принимаетx, y, n
и выводит время строкиx
n
, разделенное символомy
. Функция рекурсивная, сn
уменьшением на единицу каждый раз, пока не станет нулевой.f
вызывается три раза, предоставляя разные строки для каждого ряда. Как ни странно, Rail позволяет именам переменных быть пустыми, что экономит несколько байтов.К сожалению, большая часть байтов берется из
(!x!)
верхней части стека и присваивает ее переменнойx
, и(x)
которая помещаетсяx
в стек. Это необходимо, потому что в Rail нет дублирующего оператора, поэтому(!x!)(x)(x)
это единственный способ скопировать вершину стека.источник
Задача 1, CJam, 7 байтов
Я просто хотел получить (предположительно) оптимальное решение CJam для этого в. Он использует тот факт, что сумма первых n кубов является квадратом n-го треугольного числа, который сам является суммой первых n целых чисел.
Проверьте это здесь.
Задача 4, Деление,
17388786968 байтGitHub хранилище для деления.
Моя вторая довольно сложная программа Fission. :)
Формат ввода немного странный. Для поддержки отрицательных входов, первый символ , как ожидается , будет либо
+
или-
указать знак. Значение байта второго символа является величиной входного значения (так как Fission не может изначально прочитать десятичные целые числа). Так что, если вы хотите,111
вы передадите его+o
на STDIN. И если вы хотите,-56
вы передаете это-8
. Вместо+
и-
вы можете использовать любой символ с более низким или высоким символьным кодом, соответственно. Это может быть полезно , чтобы передать что - то вроде-n
(что вашаecho
мощь лакомства в качестве аргумента) , как, например,0n
.Давайте посмотрим, как мы можем найти неабинарное представление положительного числа. Мы хотим вычислить число от младшего до наиболее значимого бита (мы поместим эти биты в стек и распечатаем их все в конце, чтобы получить их в правильном порядке). Первая цифра - это просто четность числа, и мы делим число на целое число, чтобы продолжить обработку. Следующая цифра теперь отрицательная (со значением -2), но следует отметить, что этот бит будет установлен всякий раз, когда 2-бит будет установлен в обычном двоичном числе. Единственная разница состоит в том, что нам нужно противостоять -2 с положительными более значащими цифрами. Итак, что мы делаем, это:
1
, мы увеличиваем количество оставшегося на 1 для того , чтобы действовать контр-отрицательный бит (разница между negabit и битом сразу значением следующим более значимым битом).Значительное упрощение кода является результатом того, что он замечает, что условное добавление здесь эквивалентно округлению числа вверх при делении целого числа (если отброшенный бит был равен 1, мы увеличиваем результат деления на целое число на 1).
Затем следующий бит снова является положительным значением, поэтому мы можем определить его как обычно. Это означает, что мы хотим цикл, который вычисляет два бита за раз, чередуя округление вверх и округление для оставшегося числа, но мы хотим войти в цикл посередине, поэтому мы начнем с округления вниз.
Как мы можем обращаться с отрицательными целыми числами? Проблема в том, что Fission не может на самом деле делать произвольную арифметику с отрицательными целыми числами, потому что массы всегда неотрицательны. Поэтому нужно было бы сделать что-то действительно сложное, например, работать с величиной и отслеживать знак где-то еще. Однако негабинарное представление отрицательного числа может быть вычислено на основе связанного положительного числа:
Если п является отрицательным, вычислить negabinary представление N / 2 (округляется до ) и добавить четность п .
Это как раз первый шаг нашего двухбитного цикла. Поэтому все, что нам нужно сделать, это запустить цикл в другой точке, если знак отрицательный.
Большая часть экономии от 173 оригинальных байтов была получена благодаря этой информации, которая позволила мне сжать три проверки на четность и цикл из двух частей в один цикл с одной проверкой на четность.
Этот пост будет слишком длинным, если я подробно объясню весь код, но я укажу несколько разделов, чтобы дать приблизительное расположение потока управления, и вы можете разобраться в деталях с помощью ссылки Fission.
Начиная с
D
, это читает бит знака в энергию и величину в массу атома, который заканчивается в[
(идущий направо). Этот знаковый бит будет чередоваться после каждого прохождения проверки на четность и будет определять, сохраняем ли мы округленную или уменьшенную половину входного значения цикла.Это цикл, который вычисляет отдельные биты и передает правильную половину в следующую итерацию. Символы
S
иJ
используются для создания копии правой половины на основе текущего знакового бита,X
s выполняет копирование. В>
верхнем правом углу вычисляется фактический бит, который затем отправляется в стекK
для последующего извлечения. Я думаю, что расположение в верхнем правом углу довольно изящно и определенно стоит изучить подробно, если вы заинтересованы в Fission.Это
%
переключатель, который возвращает число обратно в цикл, если оно больше 0.Как только число достигает 0, оно отражается вниз. Это запускает другой цикл, который извлекает биты из стека, добавляет их в код символа
0
и печатает их с помощьюO
. Программа завершается, когда стек пуст, потому что управляющий атом в конечном итоге будет помещен в стек (и после этого больше не останется движущихся атомов).Задание 5, прелюдия,
21917996 байтСтраница Esolangs для Прелюдии.
Стек Фрагмент интерпретатора для Прелюдии.
Это началось как стандартная программа Prelude с фиксированным выходом и тремя голосами. Поговорив с Sp3000, я решил попробовать один голос. Оказалось, что это работало довольно хорошо, потому что намного проще использовать старые буквы. Затем Деннис дал мне несколько советов, и я нашел текущую версию: идея состоит в том, чтобы поместить все смещения от буквы
h
в стек одного голоса в обратном порядке, а затем просто печатать их по одному за раз в цикле.h
выбрано потому, чтоh
в строке нет (что важно - в противном случае0
смещение завершит цикл) и потому, что оно минимизирует кодирование смещений с точки зрения двузначных и отрицательных смещений.Кодировка смещения была сгенерирована с помощью этого скрипта CJam .
Задача 8, Mathematica, 28 байт
Yay для встроенных модулей. (Именование Mathematica здесь немного странно ...
LongestCommonSubsequence
находит самую длинную общую подстроку, ноLongestCommonSequence
находит самую длинную общую подпоследовательность .)Задача 9, J, 1 байт
То же самое, что APL и K отвечают, но кажется, что никто еще не взял J.
Задача 10, Retina,
6760 байтGitHub хранилище для Retina.
Каждая строка идет в отдельном файле и
<LF>
должна быть заменена символом новой строки и<empty>
должна быть пустым файлом. Вы также можете поместить все это в один файл и использовать эту-s
опцию, но это пока не позволяет вставлять символы новой строки вместо<LF>
. Вы можете подражать этому, делая что-то вродеКак показывает вышеприведенный пример, ожидается, что ввод будет одинарным. Идея кода состоит в том, чтобы создать три копии унарного ввода (минус 1), каждая с копией соответствующей строки. Затем мы многократно дублируем последние девять символов перед символом
1
до тех пор, пока все1
s не исчезнут, повторяя при необходимости строки. Наконец, мы удаляем посторонний трейлинг~
.источник
Я начну с пары, наверное. Первый раз в гольф.
Задача 1, Python,
3821 байтСуммируйте список всех кубов до x. Изменено выражение благодаря xnor
Задача 2, TI-Basic 89, 244 байта
Не уверен на 100%, буду тестировать, когда найду новые батарейки для своего калькулятора. isPrime является встроенным, ipart является целочисленной частью (2.3 -> 2)
Задача 3, Perl,
4534 байтаperl file 1 2 3 4 -> 2. Сохранено пару байтов благодаря @nutki. Печатается вместо сохранения в переменную, затем печатается переменная.
Задание 4, Ruby,
4340 байтПо крайней мере, это работает в 1.9, не знаю, около 1.8. В двоичном коде '10' * 16 (или 2863311530) плюс число, xor с этим 10101010 ... является небинарным. Выводит строковое представление с кавычками (3 -> «111», а не 3 -> 111). Не могу найти математику, чтобы написать х меньше символов.
Задача 5, Malbolge,
682354 байтаПопробуйте онлайн здесь. Подумайте, насколько это коротко. Гольф столько, сколько я мог. Сохранено 300 байт, так где?
Задача 6, Баш,
625040 байтО% j узнал из другого поста.
Задача 10, Befunge-98, 121 байт
Изменен на befunge-98. Старый был Befunge-93,
227 157147 байт. Использовал Fungi, написанный на Haskell для тестирования. Использовал «сделать несколько раз k» и добавить отдельные символы в стек с помощью «. У меня такое чувство, что его можно сыграть в гольф до 110 или меньше, но я уже потратил слишком много времени на это ...источник
lambda n:(n*n-n)**2/4
0=fPart(expression) rather than
iPart (выражение) = выражение` в своем базовом ответе TI-89.Первое: техническая задача 6 НЕ считается; Я загрузил unc менее часа назад. Тем не менее, я почти загрузил его сегодня утром, но решил сначала написать тестовый набор. Идиот.
Так или иначе, здесь идет!
Обратите внимание, что большинство unc-объектов преднамеренно задом наперед, так что на
&&
самом деле означает||
, что некоторые операции выглядят странно (например, использование-
для вычисления куба).Задача 1, Haskell, 21 байт
Задача 2, Hy, 135 байт
Задача 3, Дротик, 37 байт
Моя первая функция Дартс!
Задача 5, INTERCAL, 1047 байт
Задача 6, unc, 157 байт
Задача 8, RS, 42 байта
Живая демоверсия.
Задача 10, Pyth, 46 байт
Живая демоверсия.
источник
!include
s. Не совсем уверен, какой из них, хотя.stdio.h
, второе естьtime.h
. Мне нужны оба.unc
используется для компиляции кода C? GCC будет работать без проблемstdio.h
. Не уверен насчетtime.h
.Задача 1, APL, 7 байтов
Вы можете попробовать это онлайн, используя ngn / apl, хотя он будет работать с любой реализацией APL, которая по умолчанию имеет нулевое начало индекса.
Это кубизирует каждое целое число от 0 до input (
⍳⎕
) -1 путем commuting (⍨
) аргументов оператора power (*
). Результирующий вектор уменьшается суммированием (+/
) и скаляр возвращается.Задача 2, Юлия, 42 байта
Это создает анонимную функцию, которая принимает в качестве входных данных целое число и возвращает логическое значение. Чтобы назвать его, дайте ему имя, например
f=n->...
.Сначала мы используем встроенную функцию Джулии,
isprime
чтобы проверить,n
простое ли . Если это так, мы проверяем, чтоlog2(n+1)
это целое число. Если это так,n
можно записать как2^k-1
для некоторыхk
, и, таким образомn
, простое число Мерсенна.Задача 3, ELI , 19 байт
Это создает монаду,
f
которая возвращает медиану входного вектора.Ungolfed + объяснение:
Примеры:
Задача 4, Октава, 39 байт
Это создает дескриптор функции, который принимает целое число в качестве входных данных и возвращает связанную неабинарную строку. Чтобы позвонить, дать ему имя, например
f=@...
, и запустить сfeval(f, <input>)
.Вы можете попробовать это онлайн .
Задача 5, CJam, 47 байт
Строка просто печатается в STDOUT. Вы можете попробовать это онлайн, если вы чувствуете себя таким склонным.
Задача 6, Пакет Windows, 46 байт
Переменная
%date%
содержит текущую дату в формеThu 06/25/2015
. Мы можем выбрать месяц и день, получая подстроку длиной 5 после пропуска первых 4 -х символов:%date:~4,5%
. Оттуда мы просто проверим, наступит ли 1 января, и скажем, с новым годом, если это так.Задача 7, Pyth, 26 байт
Сначала мы назначаем
G
диапазон от 13312 до 19894 включительно. Затем мы выполняем цикл 64 раза, и на каждой итерации выполняем shuffleG
(.SG
), удаляем и возвращаем последний элемент (.(
) и печатаем его символьное представление (pC
).Вы можете попробовать это онлайн .
Задача 8, Ruby, 36 байт
Это определяет функцию,
f
которая принимает две строкиa
иb
гдеa
находится строка для поискаb
.Все, кроме символов в
a
, удаляются изb
использования,.tr()
и мы проверяем, содержит ли результатa
точно использование[]
. Он вернется,nil
если строка не найдена, поэтому мы можем получить логическое значение, используя!
with.nil?
.Задача 9, R, 16 байт
Это создает безымянный функциональный объект, который принимает любой вид массива или матрицы
x
и целое числоn
и умножает каждый элементx
наn
. Если вы хотите, вы можете попробовать это онлайн .Задача 10, Python 3, 92 байта
Довольно просто. Вы можете попробовать это онлайн .
источник
Задача 1,> <>, 10 + 3 = 13 байт
Запустите это, используя официальный интерпретатор Python, используя
-v
флаг (по стоимости 3 байта). Это возводит в квадрат количество(n - n*n)
и делит на4
, что, конечно, эквивалентно квадрату(n*n - n)
и делению на4
.Задача 2, GAP,
6362 байта(Сэкономил место, написав равенство наоборот.)
Задача 3, R,
4339 байтСпасибо Plannapus за хорошее улучшение!
Задача 4, Пит,
1551351155 * 19 = 95 кодековПротестируйте с помощью этого онлайн-переводчика с размером коделя 13. Или используйте предпочитаемого переводчика - дайте мне знать, если у вас есть тот, который вам нравится!
Сделать вывод
0
вместо пустой строки для ввода0
было неудобно. Я использовал if-then в начале, чтобы позаботиться об этом случае; затем цикл while для вычисления цифр в ненулевом случае и, наконец, еще один цикл while в конце для вывода цифр из стека.Большое спасибо Sp3000 за некоторые очень полезные комментарии, которые помогли мне сохранить некоторые кодеки!
Задача 5, Lua, 52 байта
Вы можете попробовать это здесь .
Задача 6, LaTeX,
157139136127128 байтЕсли произведение дня и месяца есть
1
, распечатайте сообщение; иначе ничего. (Новый год особенно удобен для этой конструкции: так как выход мы ищем это1
, нам нужно только одноor
заявление В.n
ЧТor
оператор определяет поведение для значенияn
.)Примечание: в моей предыдущей версии отсутствовал возврат строки, что было ошибкой. (Я пытался протестировать эту функцию, но для ее правильной проверки может потребоваться некоторое время ...)
Моя оригинальная версия использовала
calc
пакет, который был намного удобнее, чем моя текущая версия. Что-то иметь в виду для «реальной жизни»!Задача 7, Ruby, 62 байта
Задача 8, JavaScript, 78 байт
Рекурсивное решение, проверяющее,
l
является ли подстрокаm
. Еслиl
пусто, то!l
результатыtrue
и функция завершается. (В этом случаеl[0]
он не определен, но с JavaScript все в порядке.) В противном случае он ищет первый экземплярl[0]
inm
. Если он не находит, тоm.indexOf(l[0])
приводит к-1
и такu
приводит к0
и функция завершается.В противном случае он удаляет первую запись
l
и первыеu
записиm
и продолжает проверку.Задача 9, Python,
7260 байтРазвертывает до «самого низкого уровня», где
a
список больше не является просто целым числом, затем выполняет умножение.Большое спасибо Деннису за то, что он спас мне 12 байтов!
Задача 10, Groovy, 81 байт
Попробуй это здесь . Первоначально я пытался реализовать что-то вроде
.join()
метода Python для строк, который объединяет строки с определенной «связующей строкой» (например, связи между вагонами). Но это стоило намного больше, чем сэкономило.Я надеюсь, что я не сталкивался с какими-либо соглашениями о приемлемых ответах на этих различных языках, но, пожалуйста, дайте мне знать, если у меня есть.
Спасибо Деннису за фантастический вызов!
источник
except:return n*a
сохраняет несколько байтов для задачи 9. Для задачи 1 я бы посчитал-v
флаг одним байтом.-v
флаг наi
(хотя я думаю, что было бы хорошо, если бы обе версии были упомянуты, для облегчения тестирования).-
,v
). Я просто имел в виду, что у вас есть возможность принять ввод как кодовую точку черезi
инструкцию.Задача 1, Pyth, 5 байт
Берет номер из стандартного ввода. Спасибо @Jakube за указание на бесполезное
U
.Задача 6, JavaScript, 56 байт
Задача 7, CJam, 16 байтов
Создает диапазон, тасует, выбирает первые 64 и отображает добавление начального значения и преобразование в символ. 14 символов, 16 байтов.
Задача 8, Октава, 23 байта
Определяет анонимную функцию.
Задача 5, PHP, 45 байт
Без сжатия, просто печатает.
Задача 9, APL 1 байт
Так же, как ответ К
источник
.slice(4, 10)
?/an 01/.test(Date())
.)Задача 1, R,
2119 байтДовольно просто. Ввод из STDIN.
Задача 2, Perl,
4066 байтДобавлена простейшая проверка (регулярное выражение проверки простых чисел Abigails)
Задача 3, PARI / GP,
2422 байтаВпервые я коснулся этого. Возможно, придется узнать немного больше об этом.
Задача 4, T-SQL, 235 байт
Встроенная табличная функция с использованием рекурсивного CTE. Очень большой, но забавный.
Использовать
Задача 5, GAP, 48 байтов
Задача 6, Excel,
5148 байтСпасибо @Bond за 3 байта.
Задача 7, Python 2.6,
989385 байтЭто первый раз, когда я пытался сделать что-нибудь в Python, так что может быть намного лучше. Спасибо @Dennis и @Jacob за отличные советы
Задача 8, TCL, 57 байт
Позор, что удаление пробела убивает это
Задача 9, Пайк, 53 байта
Функция, которая возвращает умноженный массив
Задача 10, Powershell, 88 байт
Функция Powershell. Я думаю, что могу немного его укоротить, но вот это сейчас.
И наконец закончено :)
источник
=IF(TEXT(NOW(),"md")="11","Happy New Year!","")
.l[:63]
должен работать и(13312,19894)
короче шестнадцатеричных констант (и суммы).range(19892,0x4DB5+1)
дал мне[19892, 19893]
Задача 2, J, 10 байт
Добавляет логическое значение 0 или 1, если входное значение является простым для своего двоичного представления, а затем принимает произведение. Работает на текущей версии J.
Задача 5, HTML, 45 байт
Задача 6, рыба, 53 байта
На основании ответа Bash.
Задача 8, APL, 12 байт
Это функциональное выражение. Он сравнивает порядок символов, найденных в большей строке, с тем, что можно было бы ожидать, если бы они были отсортированы.
Задача 9, К, 1 байт
Должно работать в любой версии. Арифметические операции распределяются по массивам.
источник
abc
caxbxc
.Задача 1, Ruby, 40 байт
Впервые написал что-нибудь на Ruby. Протестировано с ruby 1.8.7.
Задача 2, R, 50 байтов
Вычисляет
p
, проверьте, является ли оно целым числом, и являются ли n и p простыми числами.Задача 5, PostgreSQL, 54 байта
Задача 6, Lua, 55 байт
Задача 8, Python, 65 байт
Использование:
Задача 10, Юлия, 73 байта
Спасибо @AlexA. за сокращение этого кода! Пример выходов:
источник
log2
f(n)=
наn->
) и изменив1:(9*n-1)
на просто1:9n-1
.\n
1 байтом по привычке.(" "*"_"^6*" ")^n
этого вы можете использовать" ______ "^n
(аналогично для| |
части). 70 байт:n->print(" ______ "^n*"\n"*"| | "^n*"\n"*(" ()--() ~"^n)[1:9n-1])
. (Пробелы между столбцами здесь не отображаются)Задача 1, Haskell, 17 байт
Задача 2, Mathematica, 30 байтов
Задача 3, JavaScript, 46 байт
Задача 5, MATLAB, 47 байт
Задача 6, Ruby, 56 байт
Задача 7, Python, 106 байт (с отступом
\t
)Обратите внимание, что прямое использование
list(set(s))
здесь не работает, так как это приведет к неравномерному распределению вероятностей в пространстве всех возможных строк из-за переупорядочения элементов списка.источник
(x*x-x)^2/4
?if c not in s:s+=c
все в одну строку, сохранив несколько символов. Также0x3400
может быть заменен на13312
, который на один символ короче (и аналогично для 0x4db5). Наконец, это не изменит количество символов, но в случае, если вам не нравится отступ на вкладке, вы можете сделать отступ с одним пробелом.Задача 1, Haskell, 15 байт
Задача 2, Юлия, 28 байт
Задача 3, Октава, 30 байт
Задача 5, Яки , 45 байт
Задача 6, Mathematica, 46 байтов
Задача 9, PARI / GP, 10 байтов
источник
Задача 3, клип, 13 байт
Другая версия:
`
, Казалось, стоимость слишком много.Задание 4, KSFTgolf, 16 байт
Переводчик здесь.Я не уверен, что я делаю ... Он напечатает негабинарный файл и затем потерпит крах.
В переводчике есть ошибка. Или я смогу увеличить его до 12 байт, используя встроенное базовое преобразование (но оно работает только с положительными целыми числами):
Оригинальная версия CJam:
Я попробовал Пип, Страус, Клип и Бурлеск, чтобы выяснить, есть ли esolang со встроенным негабинаром. Никто из них не работал. KSFTgolf б / у
numpy
, который, казалось, имел некоторое странное поведение, когда база была отрицательной. Но это не легко заставить его работать с неположительными числами.Задача 7, CJam, 15 байтов
Задача 8, APL, 21 байт
Попробуйте онлайн.
источник
Задача 2, x86 masm, 40 байт
(исключая заголовок, MessageBox и т. д. - только соответствующие байты)
Задача 3, C, 136 байт
Скомпилировать используя
gcc -o Prime main.c
Задача 10, C ++, 478 байт
Скомпилировать используя
g++ -o Trucks main.cpp
C & C ++ можно сократить, но это добавит ошибку компилятора. Не знаю точных правил, поэтому я попытался оставить код без ошибок компилятора.
источник
Задача 1, Python, 35 байт
Задача 3, CJam, 9 байт
Задача 4, JavaScript,
5553 байтаЗадача 5, Pyth, 46 байт
Задача 6, C #, 65 байт
источник
Задача 1, JQ, 24 байта
Задача 6, PostgreSQL, 54 байта
источник
Задача 1, Cjam, 7 байтов
Редактировать: Просто заметил, что Мартин опубликовал это до меня. Я попробую что-нибудь еще ...
Задача 3, Python, 30 байт
Python 2.
Задача 5, ///, 45 байт
/// просто повторяет что-то без каких-либо
/
символов.Задача 7, Pyth, 19 байт
Программа. Пожалуйста, скажите мне, если я испортила математику. Попробуй здесь
Задача 9, Октава, 9 байт
Дескриптор анонимной функции. Octave автоматически делает это с помощью матрицы * scalar.
источник
.S
shuffle, и вы можете использовать егоs
вместоjk
.Я не нашел времени, чтобы попробовать их всех, но вот начало
Задача 1, постоянный ток, 8 байт
Ввод и вывод на вершину стека, в соответствии с
dc
соглашением.Задача 5, Emacs Lisp, 46 байт
Нарушение правил:
Лучшее, что я мог сделать, распаковав сжатую форму, было 55 в Perl:
(непечатные символы, указанные выше, искажены SE, но поскольку это не мой ответ, я не исправляю это)
Задача 6, SQL, 54 байта
Я считаю, что первая декада января - «подходящие» дни для этого приветствия, но вы можете приспособиться к вкусу.
now() LIKE
Конструкция работает короче извлекая изо дня в год сDATE_FORMAT(now(),'%j')
.Задача 10, sed, 58 байт
Вход в одинарный.
источник
strstr
поиск подстрок, а не подпоследовательностей. Боюсь, задача 5 сложна по колмогорову, поэтому выбор слова из словаря может быть умным, но это не разрешено.Задача 5, MarioGolf , 50 байтов
Это был язык, который я разработал в течение некоторого времени.
Текущая версия имеет достаточно функциональных возможностей, чтобы выполнить эту задачу.
Вы можете попробовать это онлайн на http://htmlpreview.github.io/?https://raw.githubusercontent.com/ismael-miguel/mariogolf/master/js/testpage.html#c:Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O
В настоящее время разработка остановлена, а реализация не завершена.
Последний коммит был 13 марта 2015 года.
Задача 6, PHP, 37 байт
Это действительно легко и весело!
Задача 10, Javascript, 121 пока
Да, не так много в гольфе ...
Но это делает работу!
Попробуй:
Показать фрагмент кода
Код не будет хорошо отображаться в фрагменте стека из-за того, что он начинается с
"
вывода. Adicional пробелы были добавлены, чтобы компенсировать это.Исходный код может быть выполнен на консоли Chrome без каких-либо проблем, и результат будет ожидаемым.
источник
date(dM)
? Здесь возвращается «25 июня». (языковой стандарт установлен в en_US) Возможно, «j» и «n» будут лучше работать, так как «d» и «m» возвращают значения 0, дополненные шириной 2.Задача 1, CJam, 10 байтов
Попробуй здесь
Задача 5, Retina, 46 байт
источник
Задача 1, октава, 15 байт
РЕДАКТИРОВАТЬ: Я думал, что я добавил это, но, кажется, я забыл сохранить: это использует тот факт, что
sum(1^3+2^3+3^3+...+n^3) = sum(1+2+3+...+n)^2 = [n*(n+1)/2]^2
Задача 3, Javascript, 24 байта
источник
Хорошо, давайте сначала сделаем простые вещи:
Задача 5, ASP, 45 байт
Задача 6, JavaScript, 46 байт
источник
Задача 1, VBA, 126 байт
Я не имею понятия, как играть в гольф в VBA. Я не набрал ни одного пробела, VBA автоматически вставляет пробелы.
=f(5)
в ячейке в Excel отобразится 100.Задача 2, Октава, 32 байта
Задача 5, Golfscript, 47 байт
Задача 9, MATLAB, 9 байтов
Ну, это начало ...
источник