Вызов:
Ваша задача - написать столько программ / функций / фрагментов, сколько вы можете, где каждая из них выводит / печатает / возвращает целое число. Первая программа должна вывести целое число 1
, вторая 2
и так далее.
Вы не можете повторно использовать любые символы между программами. Итак, если первая программа:, x==x
то вы не можете использовать символы x
и =
снова ни в одной из других программ. Примечание: разрешено использовать один и тот же символ много раз в одной программе.
Подсчет очков:
Победителем будет представление, которое считается самым высоким. В случае ничьей победителем будет представление, в котором использовалось наименьшее количество байтов.
Правила:
- Вы можете использовать только один язык для всех целых чисел
- Фрагменты разрешены!
- Чтобы это было справедливо, все символы должны быть закодированы с использованием одного байта на выбранном вами языке.
- Выходные данные должны быть в десятичном формате. Вы не можете выводить его с научной нотацией или другим альтернативным форматом. Вывод чисел с плавающей точкой в порядке, если все цифры , которые отображаются за десятичной точкой
0
. Итак,4.000
принято. Неточности из-за FPA допускаются, если они не отображаются в выходных данных. ans =
разрешены пробелы в начале и в конце, а также переводы строк и т. д.- Вы можете игнорировать STDERR, если правильный вывод возвращается в STDOUT
- Вы можете выбрать вывод целого числа в STDERR, но только если STDOUT пусто.
- Символо- независимые языки (такие как Lenguage ) запрещены
- Буквы чувствительны к регистру
a != A
. - Программы должны быть независимыми
- Пробелы нельзя использовать повторно
- Вы должны использовать ASCII-цифры в выводе
Пояснения приветствуются!
number
code-challenge
restricted-source
Стьюи Гриффин
источник
источник
#include <iostream>
и другие типичные вещи в C ++. Вы действительно нужноfrom numpy import *
. Примечание: я не программист, поэтому не знаю всех нюансов. Мы можем обсудить в чате, если что-то неясно :)Ответы:
JavaScript (ES7), оценка 17, 176 байт
Они сказали, что это невозможно, поэтому я сделал это: D (благодаря большой помощи @FullDecent)
Неиспользуемые символы:
Я не думаю, что 18 возможно, но я сказал то же самое о 17 ...
объяснение
JavaScript очень слабо типизированный язык; если вы попытаетесь выполнить математическую операцию с нечисловым значением, JS постарается сначала преобразовать его в число. Это позволяет много интересных решений. Я старался избегать максимально возможного использования цифр, чтобы их можно было использовать позже.
**
является оператором возведения в степень в ES7. Пустая строка, когда приводится к числу, становится0
, так что это вычисляет0 ** 0
, что в1
соответствии с JavaScript./~/
является литералом регулярного выражения и~/~/
возвращает-1
, так что это~(-1 / -1) / -1
=~(1) / -1
=-2 / -1
=2
. (кредиты @ GOTO0 за идею)3
.4
.NaN
это ложь, так!NaN
чтоtrue
, что эквивалентно1
. Таким образом, выражение становится1 - -1 - -1 - -1 - -1
=1 + 1 + 1 + 1 + 1
=5
.6
.7
.8
.9
.+[]
is0
, поэтому[[]][+[]]
возвращает первый элемент[[]]
(то есть[]
) и++
увеличивает его до1
. Затем+[+[]]
добавляет массив[0]
, который приводится к строке и делает"10"
.11
. Первоначально я использовал11&1111
для 3 и33/3
для 11, пока я еще раз не понял, насколько я тупой ...12
и использовать.length
.2
s и>
s на некоторое время, чтобы получить это. Мне снова повезло:222 >> 2
есть55
и55 >> 2
есть13
.14
в hex (0xE
), но нам нужна цифра в0
другом месте. Поэтому вместо этого мы добавляем результат``^``
к строкеxE
; пустая строка, приведенная к числу, равна0
, так что это возвращает0 ^ 0
=0
. Затем результат XORed с пустой строкой, которая преобразует оба значения в числа;"0xE" ^ ""
есть14
.0XF
это шестнадцатеричный литерал со значением15
.C
вCSS == CSS
(то естьtrue
). Затем мы берем результат и выполняем<< C
четыре раза, что в основном умножается1
на2 ** 4
.555...555%55
возвращать число, которое не является0
или5
. Мне очень повезло, когда я играл здесь.Стратегии, которые будут работать на многих числах:
-!NaN
будет работать на любое число (в настоящее время5
), хотя он становится большим очень быстро.~/~/
будет работать на любое число (в настоящее время2
), хотя он становится очень большим очень быстро.+[]
будет работать на любое число (в настоящее время10
), хотя это гораздо проще10
или11
..length
будет работать на любом номере.`${-``}xE`-``
будет работать практически на любое число, если вы сделаете это правильно.C<<C
будет работать с любой степенью двойки (в настоящее время16
) или с любым целым числом, если вы включите|
.источник
window.
свойств, напримерdefaultPixelWidth
, но все они, похоже, содержат либоl
или, либоe
. Вы можете получить еще 0,URL | URL
но это мало поможет.+ - * ~ < x X length
1 2 3 4 5 6 7 8 9 + - * ~ < x X length
. Таким образом, прежде чем решить это, мы не можем идти 18Желе , 47 целых чисел, 519 байт
Каждая строка - это отдельная, полная программа.
Попробуйте онлайн! (включает набор тестов и проверку пересечения)
Как это устроено
Каждая полная программа без аргументов командной строки выполняет свою основную ссылку (определенную в последней строке) неформально, то есть без ввода. Если первая ссылка в цепочке является nilad, она используется, вызывается, и в качестве аргумента и возвращаемого значения основной ссылки устанавливаются результат; Если первое звено в цепочке является монадой или диадой, оно не используется и вместо него используется неявный аргумент и возвращаемое значение 0 . В обоих случаях остаток цепочки выполняется монадически.
Желе калечит свою продукцию в нескольких случаях. Примечательно, что одноэлементный массив печатается без окружающих скобок, поэтому 42 и [42] и неразличимы после печати. Мы будем использовать это несколько раз.
1 - 10
Существует тесты атома , если возвращаемое значение 0 принадлежит к аргументу 0 . Это так, поэтому
e
возвращает 1 .BI$
является быстрой связью, в частности, монадической цепью, образованной быстрой$
группировкой двоичного атомаB
и атома приращенийI
. В совокупности они преобразуют целое число в массив его цифр в базе 2, а затем вычисляют прямую разницу получаемых цифр. Если в массиве есть только один элемент, то нет прямых различий, и онI
возвращает пустой массив (ложь); если есть хотя бы две цифры,I
возвращает непустой массив (правда).Быстрый
#
использует предыдущую быструю ссылку и применяет ее к 0 , 1, 2,… до тех пор, пока не будет найдено достаточно совпадений, и не возвращает массив совпадений. Требуемая сумма рассчитывается с помощью⁼
, которая сравнивает возвращаемое значение / аргумент 0 с собой, получая 1 . Таким образом, вся программа возвращает [2] , первое неотрицательное целое число с двумя цифрами в базе 2.⁾⁾⁾
строковый литерал, в частности, строка ⁾⁾ . Сравняться атомỤ
сортирует свои показатели их соответствующих значения; так как оба символа равны, это приводит к [1, 2] . Полученный массив уменьшается с помощью битового XOR^/
, поэтому вся программа возвращает 3 .ı
инициализирует аргумент и возвращает значение мнимой единице i .*
является диадой возведения в степень , правый аргумент которой по умолчанию соответствует аргументу главной ссылки. Таким образом,***ı
вычисляет ((i i ) i ) i ≈ 4.81 + 0i ,Ḟ
атом ( пол для вещественных аргументов, действительная часть для сложных) вычисляет действительную часть ( 4.81 ), а затемḞ
этажи, получая 4 .Эти три программы состоят из одного литерала и делают именно то, что вы ожидаете.
Литерал
.
является сокращением для 0.5 и инициализирует аргумент и возвращаемое значение. В целочисленное деление диады ( в:
) правый аргумент по умолчанию основных звеньев аргумента, так::::
вычисляет 0,5 / 0,5 / 0,5 / 0,5 / 0,5 , получая 8 .Еще один буквальный.
Полностью равный атом
E
возвращает 1, если все элементы в его аргументе равны, и 0, если нет. Целочисленный аргумент z повышен до [z] , поэтомуE
он возвращает 1 для неявного аргумента 0 .Теперь выходной атом
Ȯ
выводит 1 в STDOUT. Затем мы сравниваем 1 с неявным аргументом 0, используя атом меньше<
. Результат (1 <0) = 0 , и он печатается неявно, когда программа заканчивается.11 - 20
Сетка атом
G
пытается сделать визуально приятную таблицу из своего аргумента. Для простого целочисленного аргумента (здесь: 0 ) он просто оборачивает его в массив. Плоский не равно атом⁻
сравнивает неявный аргумент 0 в результате вправо ( [0] ), что дает 1 , поскольку ее аргументы не равны. В представительских атомṘ
печатает 1 к STDOUT и возвращает его результат. В конце программы, окончательное возвращаемое значение печатается неявно, так что в итоге мы получим 11 .Сам быстро
`
превращается диада в монады, вызвав его с одинаковыми левыми и правыми аргументами. Сначала=`
сравнивается неявный аргумент 0 с самим собой, давая 1 .Декартово произведение атом
p
ожидает списки в качестве аргументов, так что способствует целому числу 1 в диапазоне [1, ..., 1] = [1] .p`
берет декартово произведение [1] и себя, получая [[1, 1]] .Eval атом
V
превращает все плоские массивы (содержащие только цифры и символы) в строки, а затем оценивает результирующие строки как niladic программ желе. [[1, 1]] сначала превращается в [«11»] , затемV
удаляет строку, давая [11] . Еще раз,V
превращает этот массив в «11» , а затем обнуляет его, чтобы получить 11 .Теперь
×`
умножает 11 на себя, получая 121 . Десятичного атом превращается 121 в [1, 2, 1] , то уникальный атомQ
отбрасывает второй 1 , иV
еще раз получается список цифр в целое число , которое является результатом конкатенации их возвращения 12 .~
это побитовый атом НЕ . С арифметикой дополнения до двух он отображает аргумент z в ~ z = - (z + 1) .A
является атомом абсолютного значения , поэтому он отображает - (z + 1) = z + 1 . При начальном возвращаемом значении 0 тринадцать~A
возвращают 13 .Константа
⁷
содержит символ новой строки '\ n' и инициализирует аргумент и возвращаемое значение.Uneval атом
Ṿ
пытается создать строковое представление его аргумент г такого , что программа Jelly , состоящая из этого кода будет возвращать г .Первый вызов покорно возвращает строку «» \ n » , которая является символьным литералом. Следующий вызов возвращает «» »,« \ n » - пару символьных литералов. Третий и последний вызов возвращает "” ”,” ”,” ,, ””, ”\ n" - пятерку символьных литералов.
Наконец, атом индекса окна
w
переводит свой правый аргумент '\ n' в строку "\ n" и находит первый индекс подстроки, начинающейся с "\ n" . Это возвращает 14 .⁴
константа 16 . Quicklink filterfalse each (ḟ€
) переводит свой левый аргумент 16 в диапазон [1,…, 16] , затем перебирает его элементы.Для каждого элемента г ,
ḟ⁴
выполняется, сначала продвижение г в [г] , то удаление всех (если таковые имеются) вхождения 16 . Это дает массив [[1], [2],…, [14], [15], []] , где последний массив пуст, потому что он содержал 16 .Наконец, максимальный атом
Ṁ
выбирает [15] .Модульное атом
m
- вызывается с аргументами х (массив) и у (целое число) , как правило , принимает все | у | th-й элемент x , начиная с первого, если y> 0 , с последним, если y <0 . Однако, когда y = 0 , он возвращает x, соединенный с его обратным.Левый целочисленный аргумент 0 сначала переводится в [0] . Первая копия
m
объединяет [0] с собой, давая [0, 0] . Оставшиеся копии превращают этот результат в [0, 0, 0, 0] , затем [0, 0, 0, 0, 0, 0, 0, 0] и, наконец, [0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] .Наконец, счетчик атом
ċ
подсчитывает количество раз неявного аргумента 0 появляется в результирующем массиве, возвращающиеся 16 .ṭ
является липкость атома и присоединяет его левый аргумент в его правом. Посколькуṭ
и следующиеḍ
являются двоичными, все вызовы дляṭ
передачи неявного аргумента 0 в качестве правильного аргументаṭ
. Первый вызов возвращает [0, 0] , второй [0, [0, 0] , а восьмой и последний [0, [0, [0, [0, [0, [0, [0, [0, 0]]]]]]]] .ḍ
является атомом делимости ; для аргументов x и y возвращается 1 , если x делится на y , 0 если нет.Ḅ
не используется для целых чисел, поэтомуḍḄ
проверяет 0 на делимость на каждое целое число в построенном массиве. 0 делится само по себе, поэтому мы получаем [1, [1, [1, [1, [1, [1, [1, [1, 1]]]]]]]]] .Теперь небинарный атом
Ḅ
работает на плоских массивах. Для пары [a, b] он просто возвращает 2a + b . Как упомянуто ранее,Ḅ
это неоперативный для целых чисел: целочисленный аргумент c повышен до [c] , а [c] в любой базе просто c .Первый вызов
Ḅ
уменьшает [1, 1] до 3 , что приводит к [1, [1, [1, [1, [1, [1, [1, 3]]]]]]]] . Следующий вызов уменьшает [1, 3] до 5 , следующий [1, 5] до 7 и так далее, пока девятый неḄ
вернет 17 .Ṇ
является плоским логическим атомом NOT и отображает неявный аргумент от 0 до 1 .+
является атомом сложения, поэтому каждая из восемнадцати копий+Ṇ
увеличивает предыдущее возвращаемое значение (изначально 0 ). Вся программа, таким образом, возвращает 18 .C
является атомом дополнения и отображает его аргумент z в 1-z .N
является атомом отрицания и отображает его аргумент z в -z . Вместе ониCN
сопоставляют z с - (1-z) = z-1 , поэтому восемнадцать копий превращают неявный аргумент 0 в -18 . Окончательное применениеC
урожайности1 - (-18) = 19
.Перечисление атом
Ė
перечисляет элементы в массиве, создавая пар индекс-значение. Неявный аргумент 0 переводится в [0] , а затемĖ
приводит к [[1, 0]] . Undecimal атом преобразует плоский массив от основания 10 к целому числу, получ [10] , в данном конкретном случае.Второй вызов
Ė
преобразует [10] в [[1, 10]] , а второйḌ
окончательно преобразует в [20] .21 - 30
Хвост атом
ṫ
(диада) выберите постфикс его левый аргумент , который начинается с индексом ( на основе 1 и модульный) , указанная в его правом аргументе, продвигая левый целочисленный аргумент х к [х] . При вызове с обоими аргументами, установленными в 0 ,ṫ
возвращает [0] .Любой и все атом
Ȧ
возвращает 1 , если ее аргумент truthy и не содержит нулей на любой глубине, 0 в противном случае. Здесь мы просто используем его как функцию тождественности для возврата неявного аргумента 0 . Раскол в атомеṣ
разделяет его левый аргумент [0] при появлениях его правого аргумента 0 , поэтому она возвращает [[], []] здесь.Индексы атом
J
отбрасывает элементы возвращаемого значения и заменяет их с индексами, получая диапазон [1, 2] , в этом конкретном случае.Ȧ
иṫ
оба работают как прежде, поэтому они уменьшают [1, 2] до постфикса, который начинается с последнего индекса, приводя к [2] .В ниладических ссылках константа
⁸
имеет место [] . Это неразборчивая нилада, то есть она никак не вписывается в цепочку. В результате предыдущее возвращаемое значение ( [2] ) печатается в STDOUT, а затем заменяется значением nilad ( [] ).Поскольку [] ложно,
Ȧ
преобразует его в 0 .J
Атом способствует 0 до [0] , а затем возвращает список своих индексов ( [1] ), который печатается неявно , когда программа заканчивается.Еще один буквальный. Repdigits, кажется, лучшее место, чтобы использовать их.
Это использует встроенное сжатие строки Jelly. Индексы @ и ṃ в кодовой странице Jelly равны 64 и 220, а строковые литералы могут содержать 250 различных символов, поэтому сначала вычисляется целое число 250 × 65 + 220 = 16470 .
16470 делится на 3, поэтому частное 16470/3 = 5490 кодирует печатный символ ASCII или перевод строки. Их 96, и 5490 = 96 × 57 + 18 , что означает, что мы декодировали печатный символ ASCII с индексом 18 на основе 0 , который равен «2» .
Нам осталось 57 , что также делится на 3 , поэтому частное 57/3 = 19 = 96 × 0 + 19 кодирует печатаемый символ ASCII с индексом 18 на основе 0 , который равен «3» .
Это оставляет 0 ; процесс декодирования останавливается. Сгенерированные символы объединяются в форму "23"
Факторный атом
!
превращает неявный аргумент 0 в 1 . Два вызова unhalve атомаḤ
превращают 1 в 2 , затем 2 в 4 . Наконец,!
вычисляет 4! = 24 .В отсутствие аргументов командной строки константа
³
содержит 100 . Два вызоваH
превращают 100 в 50 , затем 50 в 25 .Константа
Øa
содержит строчный алфавит. Максимальный атомM
дает все индексы максимальных элементов, а так как г является крупнейшей строчной буквой, результат [26] .Двадцать шесть копий объединенного атома
;
объединяют начальное возвращаемое значение 0 и двадцать шесть экземпляров аргумента по умолчанию 0 , создавая массив из 27 нулей.¬
является логическим атомом НЕ , поэтому;¬
добавляет 1 к массиву нулей. Следующий¬
отменяет все элементы в массиве, оставляя нам массив из 27 единиц и 1 ноль.ḅ
является необоснованным атомом и преобразует массив цифр из его левого аргумента из базы, указанной в его правом аргументе, в целое число.ḅ¬
преобразует из одинарного в целое число, поэтому он просто выполняет сумму. Для массива из 27 это возвращает 27 .Индекс атома
i
способствует его левый аргументу 0 до [0] , а затем найти индекс его правого аргумента 0 в этом массиве, получая 1 .Диапазон атом
r
создает восходящий или нисходящий диапазон от него остался аргумент его правого. Правильный аргумент - это неявный аргумент 0 , так что это приводит к [1, 0] . Второй вызовi
находит индекс 0 в [1, 0] , давая 2 .ð
начинается новая, диадическая цепь. Поскольку предыдущая цепочка была niladic, левый и правый аргументы этой цепочки будут равны возвращаемому значению первой цепочки ( 2 ).c
в комбинации атом. С левым аргументом 8 и правым аргументом 2 он считает все уникальные неупорядоченные 2-комбинации набора из 8 элементов, возвращая 8C2 = 8! / (6! 2!) = 28 .Константа
⁶
содержит пробел и устанавливает аргумент и возвращаемое значение в '' . Слова атомḲ
способствует характер «» к одноплодной строке «» и делит его на пространствах, уступая [[], []] .Группа атомов
Ġ
группы все показатели равных элементов. Поскольку оба элемента последнего возвращаемого значения равны, он возвращает [[1, 2]] здесь. Минимальное атом извлекает минимальный (единственный) элемент этого массива, получая [1, 2] .Степени атом
°
преобразует оба целые числа от шестидесятеричных градусов в радианы, получая 1 ° × 2π / 360 ° = p / 180 и 2 ° × 2π / 360 ° = π / 90 . Обратное атом принимает мультипликативные инверсии, получая 180 / л ≈ 57,3 и 90 / П ≈ 28,6 .Затем
Ṃ
еще раз берет минимум, уступая 28,6 . Наконец, атом ceilĊ
превращает 28.6 в 29 .Идентичность атом
¹
возвращает 0 для неявного аргумента 0 . Раскол вокруг атомаœṡ
способствует обоих аргументов (как 0 ) до [0] , а затем расщепляется [0] вокруг смежных подрешетки , равным [0] . Это дает [[], []] .Раздвижное окно атом
Ẇ
строит весь смежный подмассив своего аргумента. Первый экземпляр преобразует [[], []] в [[[]], [[]], [[], []]] , второй экземпляр преобразует [[[]], [[]], [[] , []]] в[[[[]]], [[[]]], [[[], []]], [[[]], [[]]], [[[]], [ [], []]], [[[]], [[]], [[], []]]] .
Правда атом
T
перечисляет все показатели truthy элементов. Ни один из массивов на первом уровне не является пустым, поэтому это приводит к [1, 2, 3, 4, 5, 6] . Вверх ногами атомU
изменяет этот массив, получая [6, 5, 4, 3, 2, 1] .Четыре копии атома pop
Ṗ
удаляют последние четыре элемента, оставляя нас с [6, 5] . Наконец, атом продуктаP
превращает этот массив в 30 .31 - 40
ȷ
является сокращением для 1 × 10 3 = 1000 . Квадратный корень атом½
дает 31.6 , которой диапазон атомR
преобразует в [1, ..., 31] . Наконец, хвостовой атомṪ
извлекает последний элемент, возвращая 31 .Длина атома
L
способствует неявный аргумент 0 до [0] , а затем принимает длину с получением 1 .µ
запускает новую монадическую цепочку, а результат 1 становится ее аргументом.Для аргументов х и у , то divmod атом
d
выходов [х / у, х% г] . Каждый вызов будет иметь y = 1 , поэтому результат всегда будет [x, 0] .Первый вызов начинается с x = 1 , что приводит к [1, 0] .
d
работает только с целыми числами, поэтому он векторизуется при последующих вызовах. Второй вызов дает [[1, 0], [0, 0]] , третий [[[1, 0], [0, 0]], [[0, 0], [0, 0]]] , и пятый и последний массив глубины 5, который содержит один и 31 ноль.µ
еще раз запускает новую, монадическую цепочку, а массив до этого становится ее аргументом. Плоский атомF
unnests этого массива, получая плоский массив одного одного и 31 нулей. Наконец,L
берет длину полученного результата, возвращая 32 .Еще один repdigit, еще один буквальный.
Каждый экземпляр атома переноса преобразует свой аргумент z в [z] . При начальном возвращаемом значении 0 все 34 экземпляра вместе дают [[[[[[[[[[[[[[[[[[[[[[[[[[[[0]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] . Наконец, атом глубины
ŒḊ
вычисляет максимальную глубину результирующего массива, возвращая 34 .Окно существует атом
ẇ
способствует обоих аргументов (как по умолчанию до 0 ) на [0] , затем проверяет, ** [0] ** происходит как непрерывный подмассива [0] . Это так, поэтомуẇ
возвращает 1 .ɓ
начинается новая, диадическая цепь. Поскольку предыдущая цепочка была niladic, левый и правый аргументы этой цепочки будут равны возвращаемому значению первой цепочки ( 1 ). Цепочка использует два разных диадических атома: битовое смещение влево (æ«
) и побитовое ИЛИ (|
).Диадическая цепочка, которая начинается с трех или более диад, первоначально вызывает первую диаду с аргументами цепочки. Здесь это дает 1 << 1 = 2 . Шесть последующих диад сгруппированы в пары (так называемые вилки ), где самая правая диада вызывается сначала с аргументами цепочки, затем самая левая вызывается с предыдущими возвращаемыми значениями в обе стороны.
Для
æ«æ«
, мы получаем 2 << (1 << 1) = 2 << 2 = 8 . Затемæ«æ«
вычисляет 8 << (1 << 1) = 8 << 2 = 32 . Теперь|æ«
получает нас 32 | (1 << 1) = 32 | 2 = 34 .Наконец, трейлинг
|
действует как ловушка и вызывается с предыдущим возвращаемым значением в качестве левого аргумента и правым аргументом цепочки в качестве правого. Это возвращает 34 | 1 = 35 .При отсутствии второго аргумента константа
⁹
содержит 256 . Обратный атом способствует 256 в массив [2, 5, 6] и переворачивает ее с получением [6, 5, 2] . Затем атом головыḢ
извлекает первый элемент, а квадратный атом²
возвращает ** 6² = 36 *.Приращение атом
‘
увеличивает свой аргумент на 1 , так что‘‘‘
повернуть начальное значение , возвращаемых 0 в 3 . Следующий 0 - это неразборчивая нилада, то есть он никак не вписывается в цепочку. В результате предыдущее возвращаемое значение ( 3 ) печатается в STDOUT, а затем заменяется значением nilad ( 0 ).Следующие 7 копий
‘
превращают этот 0 в 7 , который неявно печатается после завершения программы.Декремент атом
’
декрементирует свой аргумент на 1 , так что тридцать восемь экземпляров провернуть начальное возвращаемое значение 0 в -38 . Абсолютная разница атомạ
вычисляет без знака разности между -38 и неявным аргументом 0 , возвращающимися 38 .-
является сокращением для -1 и устанавливает аргумент ссылки и возвращаемое значение равным -1 . Каждый из_
них является экземпляром двоичного атома вычитания , правый аргумент которого по умолчанию будет равен -1, если отсутствует.Сначала
-____-
вычисляется (-1) - (-1) - (-1) - (-1) - (-1) = 3 . Нижеследующее -1 - это неразборчивая нилада, поэтому предыдущее возвращаемое значение ( 3 ) печатается в STDOUT, а затем заменяется значением нилида ( -1 ).Затем
-_
вычисляет (-1) - (-1) = 0 , где литерал-
устанавливает левый аргумент_
и использует возвращаемое значение в качестве правого. Следующие девять копий_
вычитают аргумент по умолчанию -1 из возвращаемого значения, получая 9 , которое выводится неявно по окончании программы.”(
является символьным литералом, и порядковый атомO
ищет свою кодовую точку Unicode, получая 40 .41 - 47
В отсутствие третьего аргумента командной строки константа
⁵
имеет значение 10 . Unlength атомḶ
создает диапазон 0 на основе, в частности [0, ..., 9] для аргумента 10 , с обеих сторон повторе в месте атомаx
. Последний сопоставляет элементы своего левого аргумента с повторениями своего правого аргумента и повторяет каждый из элементов соответствующее количество раз. Используя [0,…, 9] в качестве левого и правого аргумента, мы получаем ноль нулей, один, два, два и т. Д.Индекс в атоме
ị
извлекает элемент его правого аргумента по индексу , указанному в его левом. С левым аргументом 10 (⁵
слева) и правым аргументом [1, 2, 2, 3, 3, 3, 4, 4, 4, 4,…, 9] (предыдущий результат) это дает 4 .За цепочкой до этой точки следует непарсируемая нилада
⁵
, поэтому предыдущее возвращаемое значение ( 4 ) печатается в STDOUT, возвращаемое значение устанавливается равным 10 , а остальная часть цепочки анализируется как обычно.Как и прежде,
⁵ḶxḶ
будет давать массив [1, 2, 2, 3, 3, 3, 4, 4, 4, 4,…, 9] . На этот раз мы вызываем отсортированный атомṢ
в аргументе 10 , который переводит 10 в [1, 0] , а затем сортирует его для получения [0, 1] . Диадическая головка атом Теперь извлекает префиксы длины 0 и 1 из результата влево, оставляя нас с [[], [1]] . При печати ничего кроме 1 не останется видимым.⁽
и его два следующих символа составляют числовой литерал. Если j и k являются их кодовыми точками в кодовой странице Jelly и (j, k) <(124, 250) , мы получаем целое число 1001 + 250j + k . Кодовые точки '{' , '}' и 'ʂ' - 123 , 125 и 167 , поэтому левый литерал оценивается в 1001 + 250 × 123 + 167 (= 31918) , а правый - в 1001 + 250 × 123 + 125 (= 31876) .Поскольку левое целое число менее чем в два раза больше правого, результат составляет (… + 167)% (… + 125) = (… + 167) - (… + 125) = 167–125 = 42 .
Перетасовка атом
Ẋ
рандомизирует порядок элементов своего аргумента; числовой аргумент z заранее повышается до диапазона [1,…, z] . Для неявного аргумента 0 этот диапазон пуст иẊ
приводит к [] . Все атомẠ
возвращает 1 , если все элементы ее аргумента являются truthy, 0 , если нет. Поскольку пустой массив не содержит ложных элементов, здесьẠ
возвращается 1 .Индекс с атомом
ż
(диада) принимает аргументы x и y и транспонирует пару [x, y] . Для целых чисел x и y это просто возвращает [[ x, y]] , поэтому этот конкретный объектż
, вызываемый с аргументами 1 и 0 (неявный аргумент), возвращает [[1, 0]] . Диадический Eval атомv
превращает все плоские массивы (содержащие только цифру и символы) Я левый аргумент в строки, а затем оценивает результирующие строки как монадическая программа Желе с правым аргументом в качестве аргументов программ. С ["10"]состоит только из литералов, это игнорирует правильный аргументv
и просто приводит к [10] .Копия быстро
©
присоединяет кv
и копирует его результат в регистр. Более поздние вхождения атома отзыва®
(nilad) будут извлекать [10] из регистра.Следующие три экземпляра
żv
работы, как и прежде, отображают [10] в [[10, 0] в [100] в… в [10000] . На заказ атомныхọ
испытаний , сколько раз его левый аргумент делится на его правой, так вот, он вычисляет порядок 10 (сгружен с®
) в 10000 = 10 4 , получая [4] .Ниже
®
приведена неразборчивая nilad, поэтому предыдущее возвращаемое значение ( [4] ) печатается в STDOUT, а затем заменяется значением nilad ( 10 ). ПрименяемẠ
далее, получая 1 . (Это необходимо, так как на этом этапе будет разбираться нилада, за которым следует диада.)Как и прежде,
żvżvżv
добавляет три нуля к текущему возвращаемому значению, превращая 1 в [1000] . И, наконец,ọ®
вычисляет порядок 10 в 1000 = 10 3 , и 3 выводится на STDOUT , когда программа заканчивается.Еще один репигит, еще один буквальный.
Прежде всего, литерал
111111
устанавливает аргумент и начальное возвращаемое значение равным 111111 . Другие серии1
также являются литералами.l
является логарифмическим атомом, который вычисляет логарифм левого аргумента с основанием, указанным в правом. При вызове 111111 с правильным аргументом 11 мы получаем журнал 11 111111 ≈ 4.85 .Слова атом
K
присоединяется список аргументов в пространствах, после продвижения числового / символа г в [г] . Здесь мы просто используем его, чтобы превратить аргумент ссылки 111111 в [111111] . (Здесь нам не требуется массив, но у нас закончились атомы идентичности.) Побитовый атом AND&
принимает возвращаемые значения в обе стороны, при необходимости возвращает их к целому числу и вычисляет их побитовое AND. В этом конкретном случае он возвращает [4.85 & 111111] = [4 & 111111] = [4] .Ниже
1111111
приведена неразборчивая nilad, поэтому предыдущее возвращаемое значение ( [4] ) печатается в STDOUT, а затем заменяется значением nilad ( 1111111 ).K
затем превращает это целое число в [1111111] . (Это опять-таки не обязательно, но на этом этапе можно разобрать ниладу, за которой следует диада.)Как и прежде,
l11
вычисляет log 11 1111111 ≈ 5.81 , затем&
возвращает [5.81 & 111111] = [5 & 111111] = [5] .Это единственная программа, которая состоит из нескольких пользовательских ссылок. Последняя ссылка является основной и выполняется при запуске программы, остальные - вспомогательные. Быстрый
Ç
всегда ссылается на ссылку выше текущей и выполняет ее монадически. Аналогично, быстроеÑ
всегда ссылается на ссылку под текущей (обтекание), а также выполняет ее монадически.Верхняя ссылка состоит из парного атома
,
- диады, которая превращает аргументы x и y в [x, y] - и атома суммыS
- монады, которая переводит целочисленный аргумент z в [z] и уменьшает аргумент массива путем сложения. Когда ссылка,SS
вызывается с целочисленным аргументом n , она вычисляет Σ [n, Σn] = Σ [n, n] = 2n .Средняя связь состоит из вышеуказанных атомов, вышеупомянутого быстрого
Ç
и незначительного атомаỊ
- монады, которая дает 1 для числовых аргументов z с -1 ≤ z ≤ 1 , но 0 для всех остальных. ПрименениеỊ
дважды к целочисленному аргументу n по существу заменяет его на 1 , так как вывод первогоỊ
( ввод второго) всегда незначителен. Этот результат затем соединяется с возвращаемым значениемÇ
( вызывается с аргументом n ), и результирующая пара уменьшается наS
. В общей сложности мы вычисляемΣ [(| n | ≤ 1) ≤ 1, 2n] = Σ [1, 2n] = 2n + 1 .С этими двумя вспомогательными ссылками основная ссылка теперь может создавать любое неотрицательное целое число, просматривая его двоичные цифры. При начальном возвращаемом значении 0 цепочка
ÇÑÇÇÇÑ
вычисляет конечный результат ((((((× × 2 + 1) × 2) × 2 + 1) × 2 + 1) × 2 + 1) × 2 = ((5 × 2 + 1) × 2 + 1) × 2 = 46 .Следующий простой атом находит наименьшее положительное простое число, которое строго больше , чем ее аргумент. С начальным возвращаемым значением 0 пятнадцать вызовов
Æn
вычисляют пятнадцатое простое число, которое равно 47 .источник
брейкфак , оценка 2,
25514410 байт... Да, не самая лучшая идея, так как у меня есть только 8 персонажей (тарпиты, которые будут тарпить), но давайте посмотрим, сколько это возможно.
Я думаю, что это все, что возможно. : PЭтот ответ демонстрирует шесть из восьми символов, которые использует brainfuck, два других,
- это вход и.
выход.Визуализируйте это онлайн!
объяснение
Каждый номер создается и сохраняется в начальной ячейке на ленте. Сильно полагается на обертывающие ячейки, которые не реализованы в нескольких интерпретаторах.
1 :
2 :
источник
Нейм , оценка 38, 327 байт
Объяснение:
0
.ℂ
чтобы проверить 0 и 0 для взаимной простоты, которой они являются. Это нажимает 1. Затем мы получаем первое простое использование𝐋
, в результате чего получается одноэлементный список, содержащий всего 2. Затем мы получаем наибольший элемент (𝐠
), который нажимает 2 как число. Затем мы повторяем этот процесс, пока не получим список[2 3 5 7 11]
. После этого мы используем𝐝
для вычисления дельты, в результате чего список[1 2 2 4]
. Далее мы используем,𝐬
чтобы получить сумму - которая равна 9 - затем мы вычисляем исключительный диапазон от 0 до 9, в результате чего[0 1 2 3 4 5 6 7 8]
. Наконец,𝐬
используется снова, чтобы получить 37.α
- это константа, которая представляет отрицательную единицу, и мы неоднократно нажимаем на нее и вычитаем (снова используя тот факт, что, когда мы пытаемся вытолкнуть пустой вход, 0 толкается)Можно попробовать здесь
источник
all characters must be encoded using a single byte in the language you choose
. Кодирует ли Neim эти специальные символы только в 1 байт? Как?1
. Конечно, вы можете это использовать?Python 2, 15
Вот начало, ищем больше
Спасибо Лео, чей совет помог мне добраться до 15
источник
-~-~-~-~-~-~-~-~-~[[]==[]][[]<[]]
течение 10 и0xD
на 13 для более низкого общего количества байтов''is''
оценивается как истинный, чтобы сделать другое число?((()<((),))|(()<((),))<<(()<((),))|(()<((),))<<(()<((),))<<(()<((),)))<<(()<((),))
string.printable
c, j, k, l, s, v, w, y, z, A, B, C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, !, #, $, &, ., :, ?, @, \\, `, {, }, \t, \r, \x0b, \x0c
Japt , 448 байт, оценка 42
Большое сотрудничество между Shaggy , ETHproductions и Oliver .
Эти (полезные) символы остаются:
Пояснения
Несколько вещей, которые нужно знать о Джапте, прежде чем мы начнем, которыми я часто пользовался. Во-первых, у Japt есть 6 переменных, зарезервированных для ввода, которые являются заглавными буквами
U-Z
. Если никакие входные данные не передаются через эти переменные, они все по умолчанию0
. Вторая вещь покрыта в этом наконечнике .Нажмите на любой фрагмент, чтобы попробовать его в онлайн-переводчике .
При применении к числу
v
метод принимает целое число n в качестве аргумента и возвращает 1, если число делится на n , 0, если нет. Если н не указано, то по умолчанию оно равно 2 . 0 (значение по умолчаниюU
) является делится на 2 , так что это дает нам 1 .Очень похоже на первый. При применении к числу
y
метод принимает целое число n в качестве аргумента и возвращает GCD двух чисел. Если n не указано, то по умолчанию оно равно 2 . Поскольку 0 делится на 2 , GCD (0, 2) дает нам 2 .Í
это ярлык дляn(2)
или2
-this
. Поскольку у нас нет ввода, мы используем значениеthis
по умолчанию0
, что приводит к2-0 = 2
.à
возвращает количество комбинаций[1...this]
, которое возвращает 3Q
по умолчанию используется одна кавычка.i
в строку вставляет еще одну строку в начале; как объяснено в # 3 , каждыйiiii)
эквивалентен.i("i".i("i"))
в JS, таким образом вставляя две копииi
в начале строки. Сделайте это дважды, и у вас есть строкаiiii"
.âQ
затем моделирует.search(Q)
, давая индекс первого"
в строке, который равен 4 .H
константа для 32 . При применении к числуq
метод, который принимает целое число n в качестве аргумента, возвращает n- й корень этого числа. Если n не указано, по умолчанию используется значение 2 поэтомуHq
мы получаем квадратный корень из 32, что составляет приблизительно 5,6568 .Â
это ярлык~~
, который дает результат, давая нам 5 .L
по умолчанию 100 иÁ
является ярлыком для>>>
(с нулевым заполнением битового сдвига вправо).100>>>100
такой же, как100>>>4
(правый операнд обертывает мод 32), то есть 6 .Как отмечалось ранее, по
V
умолчанию 0 .´
это ярлык для--
оператора, поэтому код эквивалентен следующему JS:X.n(Y)
эквивалентно Y - X или -X + Y ; первое--V
возвращение -1 , а второй -2 , так что это примерно эквивалентно - (- 1) + (- (- 2) + (- (- 2) + - (- 2))) . Упрощая, мы получаем 1 + 2 + 2 + 2 = 7 .Буквально 8 и 9 .
Это константы для 10 - 16 включительно.
J
по умолчанию установлено -1 . Интерпретатору Japt как-то удается правильно разобрать это, как(J--) - (--J) - (--J) - (--J) - (--J)
. Делая еще немного математики, мы находим, что это эквивалентно (-1) - (-3) - (-4) - (-5) - (-6) или -1 + 3 + 4 + 5 + 6 = 17 ,¾
это, как вы можете догадаться, ярлык для.75
. Мы помещаем в массив 24 копии по 0,75 , а затем суммируемx
, давая 0,75 * 24 = 18 .Я думаю, что это мой любимый.
;
в начале программы изменяются значения некоторых констант Джапта; без негоI
это 64 , но с ним,I
это 91 .ìw
преобразует его в список цифр и выполняетw
по списку, обращая массив, а затем преобразует обратно в число, чтобы получить 19 .½
это ярлык для.5
.e
на номер x принимает аргумент y и возвращает x * 10 y . Таким образом, цепочка расчетов, которая происходит:И финал
~~
служит для определения целого числа, что дает результат 20 .T
по умолчанию 0 .++
является оператором приращения в JS, а также в Japt;T+++T
анализируется как(T++) + T
, но++T+++T
анализируется как(++T) + (++T)
, так что это эквивалентно коду JSРезультат равен 1 + 2 + 3 + 4 + 5 + 6 , что составляет 21 .
Буква 22 .
Ä
это ярлык для+1
, так что это просто сумма 231
с.Это находит количество перестановок
[1, 2, 3, 4]
, которое составляет 4! = 24 .²
это сокращение дляp2
, которое поднимает число до степени двух. 5 ** 2 составляет 25 .°
ярлык для++
оператора, или если он не может быть проанализирован как таковой,+ +
. Как отмечалось ранее, когда нет ввода, поU
умолчанию используется 0 . Таким образом, код эквивалентен(++U), (U++) + + (++U) + + (++U) + + (++U) + + (++U) + + (++U)
, что очень похоже на # 17 :U
сначала увеличивается1
, затем многократно увеличивается и добавляется так, что конечный результат 1 + 3 + 4 + 5 + 6 + 7 = 26 .³
является ярлыком дляp
метода с аргументом 3 . Однако, если строчная буква появляется непосредственно после левой круглой скобки (»
это ярлык для((
), она становится строкой. Это позволяет ему быть переданным методу и вызываться как функция (то естьm³
будет отображаться.p(3)
). В этом случае, однако,("p",3)
возвращает наш3
, а затем мы возводим его в степень3
(p
метод степени применительно к числу), что дает нам 27 .¼
, как вы, наверное, уже знаете, является ярлыком для.25
, так что это вычисляет 7 / 0,25 = 28 .Все, что обернуто в
$
символы, рассматривается как чистый JavaScript, поэтому у нас есть строка из 29 символов подчеркивания, за которой следует символb
. (Без$
,'
это будет односимвольная строка.)b
Метод, примененный к строке, возвращает первый индекс своего аргумента в этой строке. Как объяснено в # 3 , последнийb
преобразуется в строку, поэтому мы берем первый индексb
в нашей строке, который 29 .µ
это ярлык для-=
иÉ
для-1
. Эффект вычитает 30 копий -1 из 0 , что дает 30 .Очень похоже на # 29. При применении
a
метода к строке метод возвращает последний индекс своего аргумента в этой строке. Используя 0-индексирование, последний индексa
в строке 32a
с 31 .S
предопределено для одного пробела, иc
для строки с одним символом возвращает свой код, давая 32 .буквальный 33 .
MgN
возвращает N-е число Фибоначчи.011
это 9 в восьмеричной системе ; 9-е число Фибоначчи 34 .#
возвращает код символа следующего символа. Чарс-код самого#
себя бывает 35 , что делает нашу работу здесь особенно легко.p
это возведение в степень, и без второго аргумента по умолчанию оно равно 2 ; таким образом, это печатает 6 ** 2 = 36 .Это довольно сложно.
R
по умолчанию используется один символ новой строки (то, что это новая строка, становится важным позже).í
в строке, без каких-либо аргументов, берет каждый символ и добавляет его индекс: довольно бесполезное преобразование, но результат через 5 итераций таков: (используяR
вместо буквального перевода строки)Интересно, что каждая запись является просто префиксом следующей ... Но в любом случае последняя часть
è.
подсчитывает, сколько совпадений/./g
найдено в результате. В строке 38 символов; однако, поскольку/./g
сопоставляются только символы без перевода строки, результат равен 37 .Обратные пометки отмечают сжатую строку и
¥
распаковывают вll
.l
на строке даетl
ength, поэтому после декомпрессии это дает 38 .Ооо, мальчик, это чокнутый. Во-первых, мы генерируем
true
с¨N
(¨
обозначает>=
, аN
без входных данных - пустой массив), затем преобразуем это в1
с|N
. С этого момента это становится довольно сумасшедшим:(Символы
¹
s просто заменяют близкие паренны и были опущены.)o
Затем всплывает финал и возвращает последний элемент в массиве, давая 39 .В основном тот же трюк, что и с # 3 .
¤
является ярлыком дляs
метода с аргументом 2 . В этом случае, однако, передаваемый код является(("s", 2).s(2) * (("s", 2) * (("s", 2))))
или упрощен(2).s(2) * (2 * 2)
..s(2)
возвращает число в виде строки base-2, что дает"10"
;* (2 * 2)
неявно преобразует это в число и умножает на 4 , давая 40 .Похож на предыдущий.
Å
является ярлыком дляs
метода с аргументом 1 . В этом случае, однако, каждый(Å
переносится в("s", 1)
, что просто возвращает 1 .1<<1<<1<<1<<1<<1
это 32 , а1<<1<<1<<1
это 8 ; это XORed вместе с,1
чтобы получить 41 .±
это ярлык для+=
и¶
для===
. Это означает, что код на самом делеY===Y
всегда верно, поэтому мы можем упростить это немного:0 + 1 = 1 ; 1 + 1 = 2 ; 2 + (2 + 1) = 5 ; 5 + 5 = 10 ; 10 + (10 + 1) = 21 ; 21 + 21 = 42 .
источник
Iq
8, чтобы8
вернуться, но тебе придется найти что-то еще для 19, хотя.q
для5
позволяя мне использовать ,l
чтобы добавить дополнительный номер.2
Работаю над альтернативой, чтобы я мог получить=
обратно.(¤
для 2.L>>L
можете освободить 6.#w s Å
можете освободить;
иI
#
для 21.*
и^
PHP, оценка 17, 130 байт
используемые символы
ADEFGIKLMOPRSTVXYZ=_![]()<>'"#$,;/-+*|^&0123456789afhnprstwx
1 Булева константа Z (не установлена) равна константе Z
2 FTP_MOREDATA - это константа в PHP со значением 2
3 поразрядно и символы; и ж
4 поразрядное смещение влево и логический не приведенный пустой массив к логическому значению true с приведением к целому числу 1 с помощью оператора сдвига влево
7 побитовых или символов # и $ и 1
9 SIGKILL - константа в PHP со значением 9
10 бит по сдвигу вправо, каждый шаг - целочисленное деление с 8, поэтому у нас есть шаги 333333, 41666, 5208, 651, 81, 10
13 считать символ X в строке X ... с начала
15 шестнадцатеричное значение f = 15
17 битный Xor со строками ха и YV
Все фрагменты являются элементами в массиве
Попробуйте онлайн!
PHP, оценка 16, 94 байта
используемые символы
AEIMPRTUZeflnrstvwx^_&|()[]=!.*+/-<>$":0123456789
1 Булева константа Z (не установлена) равна константе Z
2 поразрядно и символы: и ш
3 Pi приведено к целочисленному значению через пустой массив, приведенный к нулю
7 битовых xor символов A и V
10 переменная $ s не установлена! $ S = один конкат с длиной строки переменной $ s
13 111/2 = 55/2 = 27/2 = 13 Целочисленное деление по битам
15 шестнадцатеричное значение f = 15
Все фрагменты являются элементами в массиве
Попробуйте онлайн!
PHP, оценка 14, 84 байта
используемые символы
$!_^[]()%/+~-=AEILMNPRUZ0123456789delnrstx
1 Булева константа Z (не установлена) равна константе Z
3 Pi приведено к целочисленному значению через пустой массив, приведенный к нулю
7 ЭРА является константой со значением 131116 мод 11 = 7
10 переменная $ s не установлена! $ S = один конкат с длиной строки переменной $ s равен нулю
13 шестнадцатеричное значение d = 13 14 поразрядно нет и знак минус поднимает NULL до 14
Все фрагменты являются элементами в массиве
Попробуйте онлайн!
источник
R, оценка
1314Получил дополнительный благодаря пользователю 2390246.
Используемые символы:
0123456789acemqrstuvxDFT^=";-/+()$
источник
F^F
2"n"%in%"n"+"n"%in%"n"
:; 3-9: цифры, 10:,1e1
11:,22/2
12:,T--T--T--T...
13:,0xD
14:sum(mtcars$vs)
%
и обдумывание использования встроенных наборов данных. Я не понимаю, почему это не будет хорошо.dataset['A','B']
условии, что она позволит избежать наложения уже используемых букв (и происходит содержать полезное значение!). К сожалению, насколько я могу судить по беглому взгляду, все наборы данных с именованными строками содержат букву i, поэтому она не совместима с использованием%in%
.q=""=="";q+q
. Это освободило бы использование писемi
иn
. Сейчас у меня нет времени на это, но держу пари, там где-то есть еще один ...MATL , оценка
212223 номера (273 байта)Спасибо J Doe за расширение с 22 до 23 номеров!
Попробуйте онлайн! Каждый фрагмент в ссылке заканчивается либо
D
(отображение), либо]D
(явное закрытие цикла и отображение), чтобы очистить стек и таким образом изолировать от следующего фрагмента.объяснение
Нажмите
0
. Отрицание. Даетtrue
, что отображается как1
.Нажмите строку
'bd'
. Последовательная разница между кодами символов.Нажмите массив ячеек, содержащий номер
pi
. Преобразовать в числовой массив (т.е. в одно число). Округлить вниз.Нажмите
2
дважды. Сила.Числовой литерал.
Числовой литерал.
Числовой литерал.
Числовой литерал.
Числовой литерал.
Нажмите
3
. Нажмите3.333333333333333
. Multiply. Благодаря точности с плавающей запятой это дает10
.Числовой литерал.
Нажмите
3
. Умножьте в2
два раза.Нажмите
[6]
(что так же, как6
). Вычислить n-е простое число.Нажмите
1
14 раз. Количество элементов в стеке. Очистите остальную часть стека.Нажмите
4
. Площадь. Делать то же самое. Любой: дает1
. Вычитание.Нажмите
4
.2
поднят к этому.Толкай массив
[false false ... false]
(17 раз). Количество элементов в массиве.Нажмите массив
[true true ... true]
(18 раз). Сумма массива.Нажмите 19 случайных чисел, взятых из интервала (0,1). Объединить горизонтально в 18 раз. Количество ненулевых элементов в массиве.
Нажмите
0
20 раз. Объединить содержимое стека по вертикали (задает вектор столбца). Размер: дает массив[20 1]
. Максимум массива.Толчок
1j
(мнимая единица) 21 раз. Добавить 20 раз. Разделите на1j
.Числовой литерал
Do ... while loop (
`
) с неявным концом. В первой итерации он@
увеличивает индекс итерации ( ) и увеличивает его (Q
) в 22 раза, что дает23
. Условие цикла (@@<
) ложно, поэтому цикл завершается.Некоторые идеи для дальнейшего улучшения
(пробел) в фрагменте 10 может быть заменен на
|
X>
в сниппете 20 можно было бы заменитьp
, тем самым освободив префиксX
.:
,A
источник
Vim 8 на Windows, оценка 13, 104 байта
^{keystroke}
представляет<C-{keystroke}>
, так что^X
есть<C-x>
, за исключением того,^@
что есть<C-j>
. Я все еще пытаюсь добавить больше номеров в этот список и<CR>
представляет перевод строки.Примечание: чтобы запустить эти команды, запустите vim используя
-u NONE -U NONE
. Это делается для того, чтобы ваши конфиги не мешали коду.Фрагменты с 1 по 10 начинаются в режиме вставки. В то время как фрагменты 12 и 13 запускаются в обычном режиме.
Пояснения
Фрагмент 8 есть
:^R=&ts^@
. Я должен поблагодарить @ L3viathan за то, что он придумал это, и @ nmjcman101 за предложение^@
в качестве замены для перевода строки и @ ØrjanJohansen за сокращение&tabstop
до&ts
.&ts
затем оценивается размер вкладки, который по умолчанию равен 8, и это значение вставляется в редактор.Фрагмент 10 есть
8^O^A^O^A
. Мы вставляем 8, а затем увеличиваем его дважды, чтобы получить 10.Фрагмент 11 есть
0^[^X^X^X^X^X^X^X^X^X^X^X0x
. Мы записываем 0 и уменьшаем его 11 раз, чтобы получить -11. Затем убираем минус, чтобы получить 11.Фрагмент 12 есть
:h<CR>wwwwwwwwwwwy$:q<CR>p
. Это открывает меню справки Vim 8, которое содержит следующую информацию:И последовательность
w
s переходит к 12, в этот моментy$
копирует число. Затем он вставляется в редактор с помощьюp
.Snippet 13 -
grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD
спасибо @DJMcMayhem за его разработку. Это работает только на Windows. Фрагмент ищет в меню справки команды, начинающиеся сg
. Затем он движется вниз, используя,j
чтобы добраться до этой строки:после чего он копирует его и вставляет в буфер. После этого все, кроме 13, удаляется из буфера.
источник
^R=&tabstop+&tabstop+&tabstop<CR>P
вам 12 или<CR>
уже использовали из-за^M
?<CR>
когда я сказал^M
, но спасибо, я буду смотреть на удаление^M
из сниппета-теперь :)0x01
а Ctrl + X -0x18
. И ясно, что эти два отдельных байта. Имеет ли это смысл?-u NONE -U NONE
, имеет&tabstop
значение 8. Таким образом , я сменил это с 8 сниппета с некоторыми модификациями, спасибо :)Математика, оценка 13
источник
⌊⌋⌈⌉
вещи по одному байту каждый ...⌊⌋⌈⌉
, превращаясь⌊E⌋
вFloor@GoldenRatio
,⌈Pi⌉
в4
,LucasL@4
в7
и77/7
в22/2
. Вероятно, можно сделать хотя бы еще один шаг, применив функцию с//
05AB1E , счет 18, 67 байт
Попробуйте онлайн!
источник
A'ok
:)„((Ç;¬
=20.0
(двухбайтовый символ "(("; к порядковым значениям; разделить пополам оба; взять хвост);₁.²₁P₃/ï
=21
(log-2 из 256; умножено на 256; разделено на 95; с удаленными десятичными знаками);₂Ågttγć
=22
(26-й термин Лукаса; два раза в квадратный корень; разбиты на куски равных элементов; голова извлечена). Последние два былиПинг-понг , оценка 127
В PingPong у каждого персонажа есть свое собственное числовое значение, что делает подсчет вплоть до 127 тривиальной задачей. Язык работает, читая значение каждого символа и помещая его в верхнюю часть стека, где выполняются все операции. PingPong теоретически может пройти дальше 127, но для этого потребуется передать блок символов, которые просто отображаются в текстовом редакторе как пробелы, поэтому я оставил их вне своего решения.
источник
Октава, счет 14, 74 байта
Уверен, я сейчас близок к пределу.
Пришлось удалить ,
strchr
так как у меня уже естьc
в количестве 10. Я до сих порj
,^
,=
,!
, пространство и горизонтальная табуляция (ASCII-9) влево, так что можно было бы выжать еще один в.Горизонтальная табуляция может быть использована в качестве пробела, поэтому трюк можно использовать
strchr
иnnz
можно использовать еще раз. Остались только строчные буквыabdfgjkmoquvwxy
. Из них не так много функций.mod
может работать, но не может принимать строковый ввод.Легко использовать оставшиеся символы, чтобы получить
1
, но я не знаю, как я могу получить что-нибудь еще.Проверьте все .
Возможно, полезно: так
fun a
же, какfun('a')
, такfun a b
же, какfun('a','b')
и так далее. Это может быть использовано в нескольких местах:Использование этого сделает
0
доступным, но я пока не вижу, как сделать это полезным.e (2.71828...)
иj
до сих пор не используются. Должен удалить,ceil
чтобы использоватьe
хотя.Альтернативы (вдохновение):
источник
JavaScript (ES7), 16 целых чисел,
137130128 байтовЯ взял ответ @ETHproductions и побежал с ним некоторое время; это настолько изменилось, что я публикую это отдельно. Идеи приветствуются. :)
Осталось:
$_@#!^&|/?:, ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz
Или, если фрагмент для 1 заменен на
!!/!//!!/!/
:$_@#^&|*?:", ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz
JavaScript (ES7), 16 целых чисел, 127 байт
Один байт короче. :П
Осталось:
$_@#!/^&|?:,ABDFGHIJKLNPQRVWYZcghjklmpqrsuvwyz
источник
-~{}-~{}
: P В целом, это довольно хорошо.!&/^|
поработать, впечатляюще. В случае необходимости, вы можете использовать!!/!//!!/!/
для 1 до торговли!/
для"*
.-~-~{}
+!![]+[+[]]
, если нет лучшего смысла для!
Дьялог АПЛ, оценка 15, 89 байт
Новые строки перед
l:l
являются частью 12.Пробелы в 14 представляют вкладки.
источник
0 0 0
->0,0,0
;]fromhex f
> <> , оценка 20,
93907465 байт(3 байта сохранены Teal Pelican, много байтов сохранены Джо Кингом!)
Попробуйте их на рыбной площадке! Вы можете заставить фрагменты печатать свои результаты, добавляя
n;
в конец каждого из них. Обратите внимание, что 9-й фрагмент содержит вкладку, которая используется обменом стека.Объяснение:
iii((
каждыйi
пытается получить входные данные, но поскольку их нет,-1
вместо этого они нажимают EOF = . Тогда(
это менее чем инструкция, и, поскольку-1
она не меньше-1
, она толкает фальшивку0
; но вторая(
спрашивает,-1
меньше ли это, чем0
оно есть, поэтому оно выдвигает правду1
.2
и3
очевидны.ll{lll{[
как первыйl
толкает длину стека, то есть0
второй толкает новую длину, приводя к стеку0, 1
. В{
вращает стек слева, поменять местами ,1
и0
. Еще троеl
приносят стек1, 0, 2, 3, 4
. Затем{
вращается1
вперед и[
откачивает первое,1
что есть в стеке4
.5
,6
,7
И8
очевидны тоже.!\t00=0g
(где\t
представляет вкладку),!
пропускает вкладку, затем00=
выталкивает два нуля и проверяет, равны ли они - они есть, так что мы получаем правду1
. После нажатия другой0
,g
символ получает позицию в позиции1,0
кода, которая является вкладкой с кодом символа9
.a
доf
каждого толчка10
к15
соответственно (предположительно, чтобы сделать шестнадцатеричное значение хорошим).44*
толкает два4
с и умножает их вместе, для16
.'RA'
выталкивает коды символовR
иA
(82 и 65 соответственно) в стек, затем%
вычисляет82 mod 65 = 17
.999-9--
оценивает до9 - ((9 - 9) - 9) = 18
."&F#"
толкает коды символов&
,F
и#
, которые есть38
,70
и35
соответственно. Затем,
происходит разделение, поэтому мы получаем38 / (70 / 35) = 19
.1::
нажимает a1
и дублирует его дважды,+
добавляет два из них вместе, чтобы получить2
;:+
дублирует2
и добавляет его к себе, чтобы получить4
;+
добавляет остаток,1
чтобы получить5
; затем:+:+
дублирует и добавляет дважды, что приводит к20
.Это максимальная оценка возможная с> <>. Любой фрагмент код должен включать в себя инструкцию где - то , что превращает пустой стек в непустой стек, и есть только 18> <> инструкции , которые могут сделать это (а именно
i
,l
и цифра0–9
иa–f
), а также режим строки. (Любая другая инструкция либо ничего не делает с пустым стеком,><v^/\|_#x!{}r
либо пытается выдать что-то и выдать ошибки?.+-*,%=():~$@[]on&gp
.) При вводе строкового режима используется либо"
либо'
, либо , таким образом, возможны не более18 + 2 = 20
фрагментов кода.Если вам удобнее работать с печатными изданиями, чем я, это возможно в 53 байта, благодаря Джо Кингу:,
00=, iii((i-, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 2222***, !Xll$g, 11+::+:+:++, 'Y', "Z"
гдеX
,Y
иZ
заменяются символами с кодами17
,19
и20
соответственно.источник
iii((i-
16>2222***
17>lll{lllll{{[{n
(возможно, схематично, но если вы хотите вывести как одно число, по крайней мере, на один меньшеl
) 18>11+::+:+:++
! ll$g
где пробел заменяется управляющим символом со значением 17 (Device Control 1)?MathGolf ,
485153 целых числа, 324 байта+2 балла (и -2 различных байта, используемых для
40
) благодаря @maxb .Каждая строка - это отдельная программа.
Используемые байты (92 байта):
îª∞~c±b+φⁿ_¥-567○¢i♀/d²♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ♫¼8]Σ41╔½π░3§2#τ╥└♦⌡!⌠'0$ÿ@£9)►◄╠•╠"h ♣(
Пояснения и TIO-ссылки:
MathGolf - новый язык игры в гольф, специализирующийся на задачах математического гольфа. Он имеет множество однобайтовых встроенных функций для чисел, что делает его идеальным испытанием для него.
1)
î
: нажмите 1-индексированное значение цикла, которое по умолчанию равно 1: попробуйте онлайн.2)
ª∞~
: нажмите [1]; удвоить его ([2]); всплывающий список и поместите его содержимое в стек: попробуйте онлайн.3)
c±b±+
: нажать -2; затем нажмите и нажмите его абсолютное значение; нажать -1; затем нажмите и нажмите его абсолютное значение; и сложите их вместе. Попробуйте онлайн.4)
φⁿ_¥-
: нажмите золотое сечение (1,618033988749895); куб это (4.23606797749979); дублировать вершину стека; взять по модулю 2 (0,23606797749979); вычтите их друг из друга: попробуйте онлайн.5,6,7) Сами цифры: попробуйте онлайн. Попробуйте онлайн. 9) : нажать -3; квадрат:
8)
○¢i♀/
: толчок 2048; преобразовать в шестнадцатеричную строку (800); приведение к целому числу; нажать 100; делить:d²
попробуйте онлайн. 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38) Вставьте встроенные функции для самих чисел (♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ
): попробуйте онлайн.39)
♫¼¼¼¼
: нажать 10000; целое число делится на 4 четыре раза: попробуйте онлайн.40)
88888]Σ
: нажать 8 пять раз; оберните их в список; Суммируйте этот список: попробуйте онлайн.41) Сам номер: попробуйте онлайн.
42)
╔½½½½½½½½½½½
: толчок 86400; целое число делится на 2 одиннадцать раз: попробуйте онлайн.43)
π░3§3
: нажать пи (3.141592653589793
); приведение к строке; вытолкните и нажмите на его третий 0-индексированный символ (4); нажмите 3; вывод всего стека, объединенного неявно:Попробуйте онлайн. : Нажать 2 два раза; взять власть двоих (4); сделай это снова; вывод всего стека, объединенного неявно: попробуйте это онлайн. 45) : Push 2 * PI (6,283185307179586); вытолкните и нажмите на 2 под ним, что ближе всего (4); нажмите на верх стопки + 1, не нажимая (5); вывод всего стека, объединенного неявно: попробуйте это онлайн. 46) : толчок 64; уменьшить в 2 раза: попробуйте онлайн. 47) : Push-гамма (n + 1) (по умолчанию 1); увеличить на 2 двадцать три раза: попробуйте онлайн. 48) : нажимная строка44)
22#22#
τ╥└
♦⌡⌡⌡⌡⌡⌡⌡⌡⌡
!⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠
'0$
: Нажмите порядковый номер символа '0': попробуйте онлайн.49) ; вытолкните и протолкните его длину (4); нажмите 9; вывод всего стека, объединенного неявно: попробуйте это онлайн. 50) : увеличение в 1 пятьдесят раз: попробуйте онлайн. 51)
ÿ@@@@£9
"@@@@"
))))))))))))))))))))))))))))))))))))))))))))))))))
►◄╠•╠
: Толчок 1 000 000; Толчок 10 000 000; вытолкнуть оба и целочисленно разделить их друг с другом (10); нажмите 512; совать оба и целочисленно делить их друг с другом: попробуйте онлайн.52)
"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h
: нажимная струна"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"
; протолкнуть его длину (не вставляя строку); удалить все из стека, кроме последнего: попробуйте онлайн.53)
♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
: толчок 128; уменьшено на 1 семьдесят пять раз: попробуйте онлайн.Попробую добавить еще немного позже. У меня остались некоторые полезные вещи, в том числе по модулю
%
и умножению*
.источник
88888ΓΣαΣ
->88888]Σ
или88888§§§§Σ
экономит 2 команды за счет их использования. Вы также можете сделать что-то вроде того,"xxxxxx"h
где последний символ является неразрывным пробелом, который очищает все, кроме TOS, и вы можете использовать длину строки для генерации числа. Возможно, используйте что-то другое, чем,x
хотя, потому что тогда у вас есть,Wx
что дает вам 53 столько, сколько вы можете получить 35 другим способом.char/ord
оператор, который работает как'A$
->67
, а также работает с более длинными строками (вроде как целые числа с базой 256). Это не очень хорошо задокументировано, но если вы заинтересованы в улучшении этого ответа, я могу воссоздать чат для MathGolf по любым вопросам.88888]Σ
. Не знал о]
. Что касается того"hhhhh"h
, что, кажется, не работает . : S[
начиная с контекста массива и]
заканчивая им, и оборачивая результаты в массив. Чтобы верхний уровень вел себя так же, как нижние уровни,]
обернуть весь стек в массив казалось хорошей идеей.Java 8,
111213, 39 байтВ Java только 10 символов для чисел (0-9), и для всех вызовов методов и констант требуется точка, поэтому я не уверен, что смогу получить результат выше 11Видимо, символы применяются к целым числам по умолчанию, когда применяются операции
+1 с помощью @ OlivierGrégoire
Пояснения:
целое число лямбда, которое не принимает никаких входных данных и возвращает 1. Когда параметр не принимает никаких входных данных, используется значение по умолчанию в соответствии с вышеуказанным мета-сообщением, которое для целых чисел равно 0
целые буквальные числа
XOR двух символов, чтобы вернуть 10
буквальное целое число
лямбда-выражение, которое возвращает длину строки из 12 символов
Шестнадцатеричное 13
Ссылка TIO, если вы хотите проверить.
источник
2
можно записать как2
и10
как'P'^'Z'
. Кроме того, это освобождает персонажейX+*
и используетP
.i->i.ONE
недопустимы.Gaia , оценка 25, 203 байта
Я считаю, что это идеальный результат, так как больше нельзя использовать нилад с учетом ограничений персонажа.
Пояснения
1.
§‼
§
является символом пробела,‼
приводится к логическому значению, поэтому результат равен 1.2.
..⌉+⌉
.
это ярлык для0.5
, так что этоceil(0.5+ceil(0.5))
.3.
₵P~~
₵P
это пи,~
побитовое отрицание. Двойное побитовое отрицание - это просто усечение.4.
4
5.
5
6.
6
7.
∂Ql
∂Q
это список, содержащий названия дней недели,l
это длина.8.
8
9.
9
10.
¶c
Кодовая точка
c
перевода строки¶
.11.
11
12.
'¡ċ⌋u⌋
13.
--⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻
-
это сокращение для-1
,⁻
является вычитанием. Так что это-1 - -1 - -1...
достаточно раз, чтобы сделать 13.14.
7:,Σ
Нажмите
7
, продублируйте:
, объедините,
две семерки в список и суммируйтеΣ
.15.
Ø!))))))))))))))
Ø
пустая строка,Ø!
равно 1. Увеличьте)
1 в 14 раз.16.
øøw<øøw<«øøw<«øøw<«øøw<«
17.
⟩‘
Закрытие строки с помощью
‘
делает его буквальным числом base-250.⟩
находится в значении байта 17 в кодовой странице Gaia.18.
₸ḣ₸K$₸ḣ₸/S₸₸/=$
19.
]]]]]]]]]]]]]]]]]]]n
Каждый
]
упаковывает стек в список. Сделайте это 19 раз и получите глубинуn
списка.20.
⇑’e
Закрытие строки с помощью
’
делает список кодовых точек кодовой страницы.e
выводит список в стек⇑
имеет кодовую точку 20 в кодовой странице.21.
0(((((((((((((((((((((_
Уменьшение
(
0 21 раз, затем отрицание_
.22.
22
23.
“B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B
Преобразуйте строку
“B”
из базы-24, где цифры от 0 до 23↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B
. Результат есть23
.24.
3₈×
3 × 8.
25.
ℍḥḥ
100
ℍ
вдвоеḥ
и снова наполовину.источник
С, оценка 13
Это просто набор целочисленных констант.
0==0
оценивается в 1__LINE__
= 21+1+1...
=1*10
= 10'o'
111,'.'
представляет непечатаемый ASCII 0x10. 111/10 = 11(2<<2)
= 8,8*2
= 16,16-2-2
= 12"strlenstrlens"
= 13источник
Ом , оценка
2122, всего 160 байтПопробуйте онлайн!
Пояснения
1.
╓S@Ri
Нажмите секунды текущей даты / времени (
╓S
). Получите включающий диапазон от 1 до секунд (@
), измените его (R
), получите последний элемент (i
), который всегда равен 1.2.
ΓΓ-Γ-Γ-
Γ
равно -1, так что это (-1) - (-1) - (-1) - (-1), что равно 2.3.
αê⌠
αê
это число Эйлера (2.71828 ...),⌠
это потолок. 3 является результатом.4.
¡¡¡¡¼
¡
увеличивает счетчик,¼
толкает счетчик.5.
5
Просто буквально.
6.
▀lll▀l
▀lll▀
является сжатым строковым литералом, который эквивалентен"of >ic"
.l
берет длину, поэтому результат равен 6.7.
ÑÑÑÑÑÑÑÿWÿk
Сначала мы нажимаем 7 символов новой строки chars (
Ñ
), а затем пустую строку (ÿ
). Стек упакован в array (W
), и затем найден индекс пустой строки в этом массиве.8.
ü`½½
ü
это космический персонаж.`
толкает его значение ASCII (32), затем он удваивается вдвое (½½
).9.
9
Просто буквально.
10.
..≥°
..
это буквальный.
персонаж. Он получает incremental (≥
), который анализирует строку как число, по умолчанию принимает значение 0, поскольку это недопустимое число, и увеличивает его до 1. Затем мы вычисляем 10 1 (°
).11.
$$J
$
выталкивает текущее значение регистра, изначально 1. Итак, дважды нажмите 1, объедините стек и напечатайте.12.
3dd
Нажмите 3 и удвойте его дважды.
13.
7ƒ
Толкает 7-е число Фибоначчи.
14.
2≡≡≡Σ
Нажмите 2, трижды продублируйте его, оставив 7 2 на стеке. Затем возьмите сумму стека (
Σ
).15.
║F
║
является разделителем для литералов базы 220. Так как это в конце строки, его не нужно завершать.16.
4º
Вычислить 2 4 .
17.
0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~
ò
является побитовым отрицанием,~
является арифметическим отрицанием. Комбинируя эти операторы, мы можем увеличить 0 в 17 раз.18.
6DD++
Нажмите 6, продублируйте дважды и вычислите 6 + 6 + 6.
19.
8π
Нажмите 8-е простое число.
20.
τ╛hτ*
Нажмите 10 (
τ
), получите первый элемент (h
) из его простых множителей (╛
), умножьте это на 10.21.
"≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A
Как и в предыдущих фрагментах, строка
"≤"
анализируется как 0. Мы уменьшаем ее 21 раз, а затем принимаем абсолютное значение.22.
1111 11v11%L1111 11v11%L
Здесь мы вычисляем 1111 div 11 mod 11, который равен 2, затем выводим 2. Затем делаем это снова.
источник
PowerShell, оценка
12, 91 байт.14, 176 байтРедактировать:
(),""
Pondering 15 с чем-то вроде,"ZZZZZZZZZZZZZZZA".InDeXof("A")
но не может повторно использовать точку или 'e' ..PowerShell не может делать переменные без $, не может возводить в степень, сдвигать биты, Pi, ceil () и т. Д. С базовыми символами и в основном вводит коэрциан в / из bool и в / из чисел-как-строк, поэтому относительно мало возможностей для генерации номеров с низким синтаксисом.
источник
0
, так что 13 может быть0xd
. Вы можете поставить5
в свое обычное место, освобождая+
для объединения1
с. Это должно привести к 14. Если вам нужно сохранить символы, ключи хеш-таблицы могут быть более одной буквы. И если у вас есть какой-то запасной способ получить 1s на сумму, вы можете сделать10
=1e1
.""-(""-(""-lt(""-""))-(""-lt(""-"")))
. Это освобождает$?
для суммирования, и тогда вы можете сделать то,1e1
что я предложил.t
столкновения с обеими версиями 1.(""-eq"")-(""-(""-eq""))
Кажется, лучше, чтоq
в хеш-таблице легко заменяется.TI-Basic (серия 83), оценка
2122232425 (1003 байта)См. Http://tibasicdev.wikidot.com/one-byte-tokens для получения списка того, что задача делает и не разрешает здесь.
Все это могут быть законченные программы, поскольку последняя строка программы печатается автоматически. Но (за исключением 17, который состоит из нескольких строк), они также могут быть фрагментами на домашнем экране.
На данный момент я не вижу другого способа получить какой-либо ненулевое значение из оставшихся маркеров доступны. Если нужно что-то улучшить, сначала потребуется сделать некоторые из приведенных выше решений более консервативными.
Пояснения
A=A
является логическим 1, потому что переменнаяA
равна себе.B
по умолчанию 0tan(tan(cos(cos(cos(B
примерно 2.21, а потом мы берем слово.C!°
составляет 1 градус в радианах, около 0,017. Некоторой положительной силой этого является tanh (2), около 0,964. Мы кодируем эту мощность в двоичном виде, используя подразумеваемое умножение и√(
, а затемtanh⁻¹(
.cosh(sinh⁻¹(X
₁₀^(
является однобайтовым встроенным для степеней 10 и 10 ^ 10 ^ 0 = 10 ^ 1 = 10.F nPr F
sin(tan⁻¹(X
G≤G
равно 1, то[[G≤G]...[G≤G]]
есть вектор столбца 13x1. Взятие продукта его транспонирования с собой дает матрицу[[13]]
, детерминант которой 13.not(H)
is 1.tanh(not(H))
это просто некоторое число, не равное 0 или 1, и оноln(XXX....X)ln(X)^⁻1
будет упрощено до числаX
s в первом журнале, еслиX
это не 0 (так что журнал существует) и не 1 (так что мы не делим на 0).e^(e^(e^(F
оценивается примерно в 15.15, а затем мы берем слово.J≥J
is 1.identity(
создает единичную матрицу 1x1,dim(
находит размеры ее строк и столбцов иsum(
добавляет их для получения 2. Затем мы делаем это снова, добавляя размеры матрицы 2x2 для получения 4, и снова добавляя размеры матрицы 4x4 чтобы получить 8, и снова, добавив размеры матрицы 8x8, чтобы получить 16.K nCr K
является биномиальным коэффициентом 0, выберите 0 или 1. Сложение 17 1 дает 17.i-i-...-i
упрощается до i18i, а взятиеabs(
дает 18.rand→L
сохраняет случайное действительное число в L, но нам все равно, что это такое. Мы вычисляемlog(L)⁻¹log(L^19)
, что упрощает до 19.sinh(sinh(cos⁻¹(I
немного больше 4, поэтомуseq(III,I,I,sinh(sinh(cos⁻¹(I
дает список{0 1 8 27 64}
, среднее арифметическое которого равно 20.π
должна давать 21; мы закодируем эту мощность в троичной форме, используя подразумеваемое умножение и³√(
.3×√(
качестве корня куба и(
для умножения.Fix 0
это настройка для отображения 0 цифр после десятичной дроби, округляя все значения в целые числа.sin⁻¹(ᴇ0
оценивается как π / 2, а π / 2, умноженное на себя 7 раз, дает примерно 23,59, что округляет до 24.5*5
равно 25. (Было бы более консервативно использовать,5
чтобы получить 5 и адаптировать решение, используемое там для 25. Но этот способ экономит много места и*
не очень полезен, потому что подразумевается умножение.)источник
SOGL , оценка
161820, 109 байтов, 47 используемых символовисточник
Брахилог , 16 целых, 86 байт
Попробуйте онлайн! (Ввод определяет, какая программа запускается, от 1 до N)
объяснение
источник
Желе , оценка 22, 177 байт
Попробуйте все сразу или попробуйте по одному (аргумент - это какой вывод вы хотите).
Неиспользуемые символы:
источник
A
для 2 и 4 , нет?22¹£€Y
в основную ссылку, вы можете выполнить все фрагменты сразу. tio.run/##y0rNyan8///hzjauOsc6Ry5jLt0jG3UPbTq0icuUy4zLnMuC6/…Reng, оценка 40, 149 байт
Попробуй это здесь!
Все заглавные буквы цифры, так что это приятно. Все, кроме двух, являются фрагментами. Два, которые являются программами:
Предоставленная ссылка позволяет увидеть стек во время работы. Я напишу объяснение позже.
источник
CJam, оценка 27, 168 байт
1-3:
X
,Y
,Z
Переменные
X
,Y
иZ
инициализируются в 1, 2 и 3, соответственно.4:
",,,,",
Нажмите на строку
,,,,
и возьмите длину.5-9:
5
,6
,7
,8
,9
Числовые литералы.
10-20 :
A
-K
Преинициализированные переменные.
21:
U)))))))))))))))))))))
Переменная
U
инициализируется в0
. НажмитеU
и увеличьте его в 22 раза.22:
22
Числовой литерал.
23:
';(((((((((';((((((((
Нажмите символ
;
и уменьшите его 9 раз, чтобы получить2
, затем нажмите;
снова и уменьшите его 8 раз, чтобы получить3
.24:
4m!
Возьмите факториал 4.
25:
TT=TT=+TT=TT=TT=TT=TT=++++
TT=
выталкивает1
. Этот код эквивалентен1 1+1 1 1 1 1++++
.26:
N:i~W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-
N
толкает строку, содержащую новую строку.:i
преобразует его в список кодов символов, уступая[10]
.~
распаковывает, даёт10
.W-
является эквивалентом добавления одного. Увеличение 10 в шестнадцать раз дает 26.27:
LLLLLLLLLLLLLLLLLLLLLLLLLLL0]0#
Найдите индекс 0 в списке, где 0 находится на 27-м индексе.
Персонажи по-прежнему доступны:
$%&*./1<>?@MOPQRSV[\^_`abcdefghjklmnopqrstuvwxyz{|}
Несколько замечаний для потенциального расширения:
Возможно, мне придется изменить 10-20, чтобы использовать переменные для чего-то еще. Если я получу числа больше 1, я смогу использовать
*
(и, возможно, побитовые операторы, но я не думаю, что они сильно помогут).У меня все еще есть
S
, все хорошее, что принесет мне пользу.Если я поменяю 26 на
N{}/iW-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-
, то:
будет доступно.Я могу выдвинуть несколько пустых списков и получить больше нулей с существующими переменными. Я также могу получить π, но это не кажется очень полезным, если я не могу как-то привести его к целому числу, и
m
(дляm[
) иi
уже занято.С точки зрения манипулирования массивами, я могу:
%
илиf
*
|
:M1|2|3|
источник
U)))))))))))))))))))))
и 22 be,22
что бесплатно1
для последующего фрагмента.:i
образом вносится в список цифр (например,[P]1b
дает3
).''
вместо,';
а затем использовать достаточно,(
чтобы перейти к цифрам (так, около 65 КБ(
для каждой цифры). Это освободило бы;
что-то еще, но я не уверен, насколько это полезно.;
, но в настоящее время я не могу.Haskell , оценка 13, 86 байт
Попробуйте онлайн!
Спасибо Эрджану Йохансену за то, что он нашел способ исправить совпадение моего письма, сохранив счет тринадцать. (Также за то, что старались изо всех сил, чтобы уведомить меня об этом, пока этот ответ был удален.)
pi/pi
есть1.0
.sum[]
оценивает к0
,0^0
к1
иsum[1,1]
к2
.3
чтобы9
просто расшифровать себя.length"eeeeeeeeee"
дает длину строки, которая является10
.2+2+2+2+2+2
есть12
.0xD
является шестнадцатеричным для13
.источник