В этом задании вам нужно решить 4 разные задачи, используя один и тот же набор символов. Вы можете изменить порядок символов, но не можете добавлять или удалять символы.
Победителем будет представление, которое решает все задачи, используя наименьшее количество символов. Все задачи должны решаться на одном языке.
Обратите внимание, что это наименьшее количество символов, а не наименьшее количество уникальных символов.
Задание 1:
Выведите первые N
числа каждого третьего составного числа . Кодовый блок ниже показывает первые 19 составных чисел в первом ряду и каждое третье составное число в ряду ниже.
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30
4, 9, 14, 18, 22, 26, 30
Если N=5
тогда выход должен быть 4, 9, 14, 18, 22
. Вы должны поддержать 1<=N<=50
.
Составные числа - это положительные числа, которые не являются простыми числами или 1.
Результат для N=50
:
4, 9, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 57, 62, 65, 69, 74, 77, 81, 85, 88, 92, 95, 99, 104, 108, 112, 116, 119, 122, 125, 129, 133, 136, 141, 144, 147, 152, 155, 159, 162, 166, 170, 174, 177, 182, 185, 188, 192
Задача 2:
Выведите N-by-N
таблицу умножения. Вы должны поддержать1<=N<=20
Пример:
N = 4
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Выходной формат является необязательным, ниже допустимый выходной [[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
.
Задача 3:
Определите, является ли число числом Фибоначчи . Вы должны поддерживать положительный N
до целочисленного предела по умолчанию вашего языка. Если есть как 32-разрядные, так и 64-разрядные целые числа, вы можете выбрать тот, который требует кратчайшего кода. Например, используйте int
вместо, long int
если у вас есть выбор. Вы не можете выбрать меньшее целое число, чем 32-разрядное, если это не по умолчанию (вы не можете использовать 8-разрядные целые числа, если 32-разрядное задано по умолчанию).
true/false
, false/true
, 1/0
, 1/-1
, a/b
Все приемлемо выход до тех пор , как она последовательна.
Задача 4:
Возьмите в N
качестве входных данных и выведите результат 1^1+2^2+3^3+...N^N
. Вы должны поддержать 1<=N<=10
.
10 различных результатов:
1, 5, 32, 288, 3413, 50069, 873612, 17650828, 405071317, 10405071317
Это код-гольф , поэтому выигрывает самая короткая подача на каждом языке!
Этот фрагмент стека поможет проверить ваше решение. Он измеряет минимальный набор символов, необходимый для включения всех четырех решений, и показывает оставшиеся символы.
источник
Ответы:
Python,
8887 байтНе прилагайте слишком много усилий, чтобы делиться персонажами или самими гольфами, это почти наверняка будет победным.
источник
range(11*n)
всегда содержать достаточное количество композитов?5*n
достаточно.Желе ,
191817 знаковЗадание 1
Попробуйте онлайн!
Задача 2
Попробуйте онлайн!
Задача 3
Попробуйте онлайн!
Задача 4
Попробуйте онлайн!
Как это работает
Каждая строка в программе Jelly определяет отдельную ссылку (функцию). Последняя является главной ссылкой и вызывается автоматически при запуске программы. Если только эта основная ссылка не ссылается на другие, они не имеют никакого эффекта. Обратите внимание, что даже невостребованные ссылки могут не содержать ошибок синтаксического анализатора.
Задание 1
Задача 2
Это тривиально:
×
это атом умножения, а быстрыйþ
(таблица) применяется×
к каждой комбинации элементов в левом и правом аргументе. Если аргументы являются целыми числами (которые они здесь), он также приводит их к диапазону в первую очередь.Задача 3
Задача 4
источник
ÆḞ
что уже оказывается полезным!Mathematica, 60 символов
Задача 1: Композиты
Задача 2: Таблица умножения
Задача 3: Фибоначчи
Задача 4: Сумма полномочий
Каждая отправка представляет собой набор выражений, которые игнорируются, за которыми следует безымянная функция, которая реализует данную задачу.
Я написал простой CJam-скрипт, который «оптимально» объединяет необработанные решения, добавляя комментарий. Затем я закончил тем, что сохранил три байта, избавившись от каждого комментария вручную (что потребовало некоторой перестройки для получения правильного синтаксиса в каждом случае). Сценарий значительно упростил опробование простых вариантов решений, чтобы увидеть, снизят ли они общий балл. Не стесняйтесь использовать сценарий самостоятельно.
источник
ab
иba
как сценарии, он даст мне(**)ab
и(**)ba
, а неab
иba
.(**)
сам по себе может быть использован для покрытия некоторых символов, если они использовались в любой из других программ.MATL ,
292826 символовЗадача 1 (каждый третий составной номер)
Попробуйте онлайн!
Задача 2 (таблица умножения)
Попробуйте онлайн!
Задача 3 (детектор Фибоначчи)
Это отображает
1
/0
для Фибоначчи / не-Фибоначчи соответственно.Попробуйте онлайн!
Задача 4 (сумма полномочий)
Попробуйте онлайн!
Проверьте
Эта программа вводит четыре строки и отображает их отсортированными, чтобы визуально убедиться, что они используют одни и те же символы.
Пояснения
%
является символом комментария. Все по праву игнорируется.Задача 1 (каждый третий составной номер)
Задача 2 (таблица умножения)
Задача 3 (детектор Фибоначчи)
Задача 4 (сумма полномочий)
источник
Hey MATL would be perfect for this!
Ты победил меня. +1Perl 6, 61 bytes
The second one returns
((1,2,3,4),(2,4,6,8),(3,6,9,12),(4,8,12,16))
when given4
Perl 6 doesn't really have a maximum integer, but the third one works instantly with an input of
15156039800290547036315704478931467953361427680642
. The only limiting factors would be memory and time.Otherwise they will all run "instantly" for inputs well beyond what is necessary.
Try it online
источник
JavaScript (ES6),
101100959391 bytesEdit: Saved 1 byte by not supporting
0
as a Fibonacci number. Saved 5 bytes plus a further 2 bytes (1 thanks to @Arnauld) by renaming variables. Saved 2 bytes by switching between+1
,++
and+=1
.источник
c
variable withA
should save one byte.d
withy
, butd
is undefined in the current version, so you probably want to fix that first)a
tom
.MATL, 30 characters
The character set I went with is:
I couldn't outgolf the other MATL answer, but I had fun coming up with this solution.
Task 1:
Third composite numbers.
Try it online!
Task 2:
Multiplication table. Definitely the easiest task, due to the way MATL works
Try it online!
Task 3:
Fibonacci tester. Prints a positive integer (1 or 2) for truthy inputs, and 0 for falsy inputs.
Try it online!
Task 4:
Sum of powers
Try it online!
I'll post a more thorough explanation later, but for now, you should note that
%
is the comment character, so the programs are really:источник
PowerShell,
9594 bytes(TimmyD savin' my bacon yet again)
Task 1:
Try it online!
Task 2:
Try it online!
Task 3:
Try it online!
Task 4:
Try it online!
источник
"$args"
instead of$args[0]
is brilliant. I'm going to use that from here on.;
from Task 4 by manipulating the calculation with("$args"..1|%{$s+="$_*"*$_+1|iex})-(-$s)
to save another overall byte.Haskell,
7776 charactersTry it online!
--
starts a line comment, so all four programs are of the form<program>--<unused chars>
.Task 1:
The longest program.
[x|x<-[1..],2/=sum[1|0<-mod x<$>[1..x]]]
yields a infinite list of composite numbers plus a starting1
which corrects the 0-indexing. Usage:Task 2:
Usage:
Task 3:
Returns
[0]
for truthy and[]
for falsy. Usage:Task 4:
Usage:
источник
05AB1E, 21 bytes
Task 1
Try it online!
Task 2
Try it online!
Task 3
Try it online!
Task 4
Try it online!
Explanations
For all tasks, the
q
ends the program so the code that follows never gets executed.Task 1
This is the biggest byte-hog. An small improvement here could go a long way.
Task 2
Task 3
Task 4
источник
Ruby,
83 82 8078 charactersNote: Fibonacci numbers detector using the perfect square method described on Wikipedia: https://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
источник
'';
vs#