Наскільки високо ви можете порахувати?


154

Виклик:

Ваше завдання - написати якомога більше програм / функцій / фрагментів, де кожна виводить / друкує / повертає ціле число. Перша програма повинна вивести ціле число 1, друга - 2і так далі.

Не можна використовувати жодні символи між програмами. Отже, якщо перша програма:, x==xто ви не можете використовувати символи xі =знову в будь-якій іншій програмі. Примітка. Дозволяється використовувати один і той же символ багато разів в одній програмі.

Оцінка:

Переможцем стане подання, яке вважається найвищим. Якщо випадок зрівноважений, виграє подання, яке використовує найменшу кількість байтів загалом.

Правила:

  • Можна використовувати лише одну мову для всіх цілих чисел
  • Знімки дозволені!
  • Щоб це було справедливим, усі символи повинні бути закодовані за допомогою одного байту на вибраній вами мові.
  • Вихід повинен бути десятковим. Ви не можете виводити його з науковою нотацією або іншим альтернативним форматом. Виведення плаває в порядку, доки всі цифри, що відображаються за десятковою комою, знаходяться в порядку 0. Отже, 4.000прийнято. Неточності внаслідок FPA приймаються до тих пір, поки вони не відображаються у висновку.
  • ans =, дозволені провідні та кінцеві пробіли та нові рядки тощо.
  • Ви можете проігнорувати STDERR до тих пір, поки правильний вихід повернеться до STDOUT
  • Ви можете вивести ціле число на STDERR, але тільки якщо STDOUT порожній.
  • Мови незалежної від символів (наприклад, Lenguage ) заборонені
  • Листи залежно від регістру a != A.
  • Програми повинні бути незалежними
  • Пробіли не можна використовувати повторно
  • Ви повинні використовувати ASCII-цифри у висновку

Пояснення заохочуються!


4
Мовна гарнітура піклується лише про три нижні біти кожного символу, і вони б тривіально досягли рахунку 64. Це частково не залежить від символів, але не повністю. Я думаю, що останнє правило також повинно охоплювати частково незалежні від символів мови, але я не впевнений, як його сформулювати.
Денніс

1
Щодо правила фрагмента, чи все-таки нам потрібно включати вставки / імпорт? І чи дозволяється статичний імпорт (не роблячи їх частиною фрагмента)?
Кевін Кройсейсен

1
@KevinCruijssen ви можете опустити інформацію на панелі котлів, необхідну для всіх програм / функцій. Наприклад, вам не потрібні #include <iostream>та інші речі на котлах у C ++. Ви дійсно потрібно from numpy import *. Примітка: я не програміст, тому не знаю всіх нюансів. Ми можемо обговорити в чаті, якщо щось незрозуміло :)
Стюі Гріффін

1
Ви маєте право голосувати, хоч як вам подобається @tuskiomi, але, на мою думку, це хороше правило. Символи пробілів - просто байти, як і будь-який інший символ. Чому до них слід ставитися по-різному? Також мова Whitespace виграє зсув, оскільки він містить лише пробіл, вкладку та зсув рядків. Дякую за те, що ви сказали, чому ви відмовились :-)
Гріффін

1
@StewieGriffin Я б принаймні дозволив пробіли, але ей, я не ти.
тускіоми

Відповіді:


146

JavaScript (ES7), оцінка 17, 176 байт

Вони сказали, що цього не можна зробити, тому я це зробив: D (завдяки великій допомозі від @FullDecent)

""**""
~(~/~//~/~/)/~/~/
3
4
!NaN- -!NaN- -!NaN- -!NaN- -!NaN
6
7
8
9
++[[]][+[]]+[+[]]
11
'lengthlength'.length
222>>2>>2
`${``^``}xE`^``
0XF
C=CSS==CSS;C<<C<<C<<C<<C
555555555555555555555%55

Невикористані символи:

#&,:?@ABDGHIJKLMOPQRTUVWYZ\_bcdfijkmopqrsuvwyz|

Я не думаю, що 18 можливо, але я сказав те саме про 17 ...

Пояснення

JavaScript - дуже слабо набрана мова; якщо ви спробуєте виконати математичну операцію з нечисловим значенням, JS спробує спробувати найперше перетворити її на число. Це дозволяє отримати багато цікавих рішень. Я намагався уникати використання цифр якомога більше, щоб їх можна було використовувати згодом.

  1. **є оператором експоненції в ES7. Порожній рядок при примусовому до числа стає 0, тому це обчислює 0 ** 0, що 1відповідає JavaScript.
  2. Трохи смішно, але це працює. /~/є прямим виразним виразом і ~/~/повертається -1, тому це ~(-1 / -1) / -1= ~(1) / -1= -2 / -1= 2. (зараховує за ідею @ GOTO0 )
  3. Просто 3.
  4. Тепер просто 4.
  5. NaNє фальшивим, так і !NaNє true, що рівнозначно 1. Таким чином, вираз стає 1 - -1 - -1 - -1 - -1= 1 + 1 + 1 + 1 + 1= 5.
  6. Просто 6.
  7. Просто 7.
  8. Просто 8.
  9. Просто 9.
  10. Для цього використовується невелика магія JSF *** . +[]є 0, тому [[]][+[]]повертає перший елемент [[]](тобто []) і ++збільшує це 1. Потім +[+[]]додає масив [0], який примушується до рядка і складає "10".
  11. Просто 11. Спочатку я використовував 11&1111для 3 і 33/311, поки я знову не зрозумів, наскільки я німий ...
  12. Ця стратегія буде працювати на будь-якому числі: створити рядок довжини 12та використовувати .length.
  13. Я просто заплутався з 2s і >s на деякий час, щоб отримати цей. Мені знову пощастило: 222 >> 2є 55, і 55 >> 2є 13.
  14. Цей досить складний. Основна ідея - створити 14в hex ( 0xE), але нам потрібна цифра в 0іншому місці. Тому замість цього ми додаємо результат ``^``до рядка xE; порожній рядок, примушений до числа є 0, тому це повертає 0 ^ 0= 0. Потім результат XORed з порожнім рядком, який перетворює обидва значення в числа; "0xE" ^ ""є 14.
  15. Це зараз досить просто: 0XFце шістнадцятковий буквал зі значенням 15.
  16. Найвибагливіший з усіх? По- перше , ми встановлюємо змінну Cв CSS == CSS(тобто true). Потім беремо результат і виконуємо << Cчотири рази, що в основному множиться 1на 2 ** 4.
  17. JavaScript починає втрачати цілочисельну точність з 2 53 , що дозволяє 555...555%55повернути число, яке немає 0або 5. Мені трапилося дуже пощастило, граючи тут.

Стратегії, які працюватимуть у багатьох числах:

  • -!NaNможе працювати на будь-якому номері (в даний час 5), хоча він стає великим дуже швидко.
  • ~/~/може працювати на будь-якому номері (в даний час 2), хоча воно стає дуже великим дуже швидко.
  • +[]може працювати на будь-якому номері (в даний час 10), хоча це на сьогоднішній день найпростіше на 10або 11.
  • .length буде працювати на будь-якій кількості.
  • `${-``}xE`-`` буде працювати на майже будь-яке число, якщо ви зробите це правильно.
  • C<<Cпрацював би на будь-яку потужність двох (зараз 16) або будь-яку інту, якщо ви включили |.

3
Це досить приголомшливо :)
Стів Беннетт

1
Можливо, є якийсь підлий спосіб використання одного з window.властивостей, наприклад defaultPixelWidth, але всі вони, мабуть, містять lабо e. Можна отримати ще 0, URL | URLале це не дуже допомагає.
Стів Беннетт

1
Я також знайшов "фокус", але все ще не бачу, як дістатися до 18: "фокус" - це функція (). "фокус і фокус" - 0. "фокус (URL)" не визначено.
Ксантікс

1
Поточні знайдені оператори, які збільшуються:+ - * ~ < x X length
l4m2

1
Відсутність цифр в основному обмежена цими символами. Будь-яке число містить один з 1 2 3 4 5 6 7 8 9 + - * ~ < x X length. Тому перед тим, як вирішити це, ми не можемо піти 18
м2

90

Желе , 47 цілих чисел, 519 байт

e
BI$⁼#
⁾⁾⁾Ụ^/
ı***ıḞḞ
5
6
7
.::::
9
EȮ<
⁻GṘ
=`p`VV×`DQV
~A~A~A~A~A~A~A~A~A~A~A~A~A
⁷ṾṾṾw
⁴ḟ€⁴Ṁ
mmmmċ
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
ĖḌĖḌ
ṫṣȦJṫȦ⁸ȦJ
22
“@ṃ»
!ḤḤ!
³HH
ØaM
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
irið8c
⁶ḲĠṂ°İṂĊ
œṡ¹ẆẆTUṖṖṖṖP
ȷ½RṪ
LµdddddµFL
33
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ẇɓæ«æ«æ«æ«æ«|æ«|
⁹ṚḢ²
‘‘‘0‘‘‘‘‘‘‘
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
-____---__________
”(O
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
⁽{ʂ%⁽{}
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
44
111111l11&K1111111Kl11&
,SS¶ỊỊ,ÇS¶ÇÑÇÇÇÑ
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

Кожен рядок - це окрема, повна програма.

Спробуйте в Інтернеті! (включає контрольний набір та перевірку перехрестя)

Як це працює

Кожна повна програма без аргументів командного рядка виконує своє основне посилання (визначене в останньому рядку) ніладично, тобто без введення. Якщо першою ланкою ланцюга є nilad, вона споживається, називається, і обидва аргументи основної ланки та значення повернення встановлюються на результат; якщо першою ланкою ланцюга є монада чи діада, вона не споживається, а замість них використовується неявний аргумент та повернене значення 0 . В обох випадках залишок ланцюга виконується монадно.

Желе манкує його вихід у кількох випадках. Зокрема, однотонний масив друкується без навколишніх його дужок, тому 42 і [42] і не відрізняються після друку. Ми будемо використовувати це кілька разів.

1 - 10

e

Існує тести атома , якщо повертається значення 0 належить до аргументу 0 . Це так, тому eповертає 1 .

BI$⁼#

BI$є QuickLink, в зокрема монадичної ланцюга утворена швидка $угрупованню довічного атома Bі збільшення атома I. У поєднанні вони перетворюють ціле число в масив його цифр у базі 2, потім обчислюють прямі різниці отриманих цифр. Якщо масив містить лише один елемент, немає передових різниць і Iповертає порожній масив (хибний); якщо є щонайменше дві цифри, Iповертає не порожній масив (truthy).

Швидкий #споживає попереднє швидке посилання та застосовує його до 0 , 1, 2,…, поки не буде знайдено достатньо збігів, повертає масив збігів. Необхідна сума обчислюється , порівнюючи повернене значення / аргумент 0 із самим собою, отримуючи 1 . Таким чином, вся програма повертає [2] , перше невід'ємне ціле число з двома цифрами в базі 2.

⁾⁾⁾Ụ^/

⁾⁾⁾є рядковим буквалом , конкретно рядком ⁾⁾ . Зрівнятися атом сортує свої показники їх відповідних значення; оскільки обидва символи рівні, це дає [1, 2] . Отриманий масив зменшується за допомогою побітового XOR ^/, тому вся програма повертає 3 .

ı***ıḞḞ

ıініціалізує аргумент і повертає значення уявній одиниці i . *- діада експоненції , правий аргумент за замовчуванням до аргументу основної ланки. Таким чином, ***ıобчислює ((i i ) i ) i ≈ 4,81 + 0i , атом ( підлога для реальних аргументів, реальна частина для складних) обчислює реальну частину ( 4.81 ), потім підлоги, отримуючи 4 .

5
6
7

Ці три програми складаються з одного буквального і виконують саме те, що ви очікували.

.::::

Буквал .- це скорочення на 0,5 і ініціалізує аргумент і повертає значення. У цілочисельне ділення діади ( в :) правий аргумент по замовчуванням основних ланок аргументу, так ::::обчислює 0,5 / 0,5 / 0,5 / 0,5 / 0,5 , отримуючи 8 .

9

Ще один буквальний.

EȮ<

Все одно атом Eповертає 1 , якщо всі елементи аргументу рівні, і 0 , якщо немає. Цілий аргумент z просувається до [z] , тому Eповертається 1 для неявного аргументу 0 .

Тепер вихідний атом Ȯдрукує 1 на STDOUT. Потім ми порівнюємо 1 з неявним аргументом 0, використовуючи менше атома <. Результат (1 <0) = 0 , і він друкується неявно, коли програма закінчується.

11 - 20

⁻GṘ

Сітка атом Gнамагається зробити візуально приємну таблицю зі свого аргументу. Для простого цілого аргументу (тут: 0 ) він просто загортає його в масив. Плоский не дорівнює атом порівнює неявний аргумент 0 в результаті вправо ( [0] ), що дає 1 , оскільки її аргументи не рівні. У представницьких атом друкує 1 до STDOUT і повертає його результат. В кінці програми підсумкове повернене значення друкується неявно, тому ми закінчуємо вихід 11 .

=`p`VV×`DQV

Сам швидко `перетворюється диада в монади, викликавши його з однаковими лівими і правими аргументами. По-перше, =`порівнює неявний аргумент 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 .

~A~A~A~A~A~A~A~A~A~A~A~A~A

~є розрядним атомом НЕ . З арифметикою доповнення двох вони відображають аргумент z до ~ z = - (z + 1) . A- це атом абсолютного значення , тому він відображає - (z + 1) = z + 1 . Із початковим значенням повернення 0 тринадцять примірників ~Aповернення 13 .

⁷ṾṾṾw

Константа утримує символ нового рядка '\ n' та ініціалізує аргумент та повертає значення.

Uneval атом намагається створити строкове представлення його аргумент г такого , що програма Jelly , що складається з цього коду буде повертати г .

Перший виклик покірливо повертає рядок "" \ n " , який є літеральним символом. Наступний дзвінок повертає "" "," \ n " - пару буквених символів. Третій і остаточний дзвінок повертає "" "," "," ,, "", "\ n" - квінтлет множинних символів.

Нарешті, атом індексу вікнаw сприяє правильному аргументу '\ n' до рядка "\ n" і знаходить перший індекс підрядка, що починається з "\ n" . Це повертає 14 .

⁴ḟ€⁴Ṁ

є константою 16 . Кожен фільтр швидкої посилання ( ḟ€) просуває його лівий аргумент 16 до діапазону [1,…, 16] , потім повторює його елементи.

Для кожного елемента г , ḟ⁴виконується, спочатку просування г в [г] , то видалення всіх (якщо такі є) входження 16 . Це дає масив [[1], [2],…, [14], [15], []] , де останній масив порожній, оскільки він містив 16 .

Нарешті, максимальний атом вибирає [15] .

mmmmċ

Модульне атом 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] .

Нарешті, атом countċ підраховує кількість разів, коли неявний аргумент 0 з'являється в отриманому масиві, повертаючи 16 .

ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ

є атомом tack і додає лівий аргумент до правого. Оскільки і далі є діадичними, всі виклики передавати неявний аргумент 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 .

CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC

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

ṫṣȦJṫȦ⁸ȦJ

Хвіст атом (діада) виберіть постфікси його лівий аргумент , який починається з індексом ( на основі 1 і модульний) , зазначена в його правом аргументі, просуваючи лівий цілочисельний аргумент х до [х] . При виклику з обома аргументами, встановленими на 0 , повертається [0] .

Будь і все атом Ȧповертає 1 , якщо її аргумент truthy і не містить нулів на будь-якій глибині, 0 в іншому випадку. Тут ми просто використовуємо його як функцію ідентичності для повернення неявного аргументу 0 . Розкол в атомі розділяє його лівий аргумент [0] при появи його правого аргументу 0 , тому вона повертає [[], []] тут.

Індекси атом Jвідкидає елементи значення, що повертається і замінює їх з індексами, отримуючи діапазон [1, 2] , в цьому конкретному випадку. Ȧі обидва працюють як і раніше, тому вони зводять [1, 2] до постфіксу, який починається з останнього показника, даючи [2] .

У ніладичних зв’язках константа має місце [] . Це нерозбірливий холод, тобто він ніяк не вписується в ланцюг. В результаті попереднє повернене значення ( [2] ) друкується в STDOUT, а потім замінюється на значення nilad ( [] ).

Оскільки [] є хибним, Ȧперетворює його на 0 . JАтом сприяє 0 до [0] , а потім повертає список своїх індексів ( [1] ), який друкується неявно , коли програма закінчується.

22

Ще один буквальний. Репдигіти здаються найкращим місцем для їх використання.

“@ṃ»

Для цього використовується вбудована струмова стискання 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 . Два виклики атома неживого перетворюють 1 на 2 , потім 2 в 4 . Нарешті, !обчислює 4! = 24 .

³HH

За відсутності аргументів командного рядка константа ³утримує 100 . Два виклики Hвитків 100 на 50 , потім 50 на 25 .

ØaM

Постійна Øaутримує малий алфавіт. Максимальний атом Mдає всі індекси максимальних елементів, а так як г є найбільшою рядкової буквою, результат [26] .

;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬

Двадцять шість примірників конканатного атома ;об'єднують початкове значення повернення 0 і двадцять шість екземплярів аргументу за замовчуванням 0 , будуючи масив з 27 нулів.

¬є логічним атомом NOT , тому додає 1 до масиву нулів. Наступний ¬заперечує всі елементи масиву, залишаючи нам масив з 27 одиниць і 1 нуль.

є атомом unbase і перетворює цифровий масив з його лівого аргументу з бази, зазначеної в його правому аргументі, в ціле число. ḅ¬перетворюється з унарного в ціле число, тому воно просто виконує суму. Для масиву 27 одиниць це повертає 27 .

irið8c

Індекс атома iсприяє його лівий аргументу 0 до [0] , а потім знайти індекс його правого аргументу 0 в цьому масиві, отримуючи 1 .

Діапазон атом rстворює висхідний або спадний діапазон від нього залишився аргумент його правого. Правильним аргументом є неявний аргумент 0 , тому це дає [1, 0] . Другий виклик iзнаходить індекс 0 в [1, 0] , даючи 2 .

ðпочинається новий, діадичний ланцюг. Оскільки попередній ланцюг був ніладичним, і лівий, і правий аргумент цього ланцюга буде рівним зворотній величині першого ланцюга ( 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 . Нарешті, атом стельĊ перетворює 28,6 в 29 .

œṡ¹ẆẆTUṖṖṖṖP

Ідентичність атом ¹повертає 0 для неявного аргументу 0 . Розкол навколо атома œṡсприяє обох аргументів (як 0 ) до [0] , а потім розщеплюється [0] навколо суміжних підґратки , рівним [0] . Це дає [[], []] .

Розсувне вікно атом будує весь суміжний подмассів свого аргументу. Перший екземпляр перетворює [[], []] в [[[]], [[]], [[], []]] , другий екземпляр перетворює [[[]], [[]], [[] , []]] в
[[[]]], [[[]]], [[[], []]], [[[]], [[]]], [[[]], [ [], []]], [[[]], [[]], [[], []]]] .

Правда атом Tперераховує всі показники truthy елементів. Жоден з масивів на першому рівні не порожній, тому це дає [1, 2, 3, 4, 5, 6] . Догори ногами атом Uзмінює цей масив, отримуючи [6, 5, 4, 3, 2, 1] .

Чотири копії поп- атома видаляють останні чотири елементи, залишаючи нас [6, 5] . Нарешті, атом продуктуP перетворює цей масив у 30 .

31 - 40

ȷ½RṪ

ȷ- це скорочення для 1 × 10 3 = 1000 . Квадратний корінь атом ½дає 31.6 , якій діапазон атом Rперетворює в [1, ..., 31] . Нарешті, хвостовий атом витягує останній елемент, повертаючи 31 .

LµdddddµFL

Довжина атома 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 нуль.

µзнову запускає новий, монадичний ланцюг, і масив з раніше стає його аргументом. Плоский атом Funnests цього масиву, отримуючи плоский масив одного одного і 31 нулів. Нарешті, Lприймає довжину отриманого, повертаючи 32 .

33

Ще один репгігіт, ще один буквальний.

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ

Кожен екземпляр атома обертання перетворює свій аргумент z в [z] . З початковим значенням повернення 0 , усі 34 екземпляри разом дають [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] . Нарешті, атом глибиниŒḊ обчислює максимальну глибину отриманого масиву, повертаючи 34 .

ẇɓæ«æ«æ«æ«æ«|æ«|

Вікно існує атом сприяє обох аргументів (як по замовчуванням до 0 ) на [0] , потім перевіряє, ** [0] ** відбувається як безперервний подмассіва [0] . Це так, тому повертає 1 .

ɓпочинається новий, діадичний ланцюг. Оскільки попередній ланцюг був ніладичним, і лівий, і правий аргумент цього ланцюга буде рівним зворотній величині першого ланцюга ( 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 *.

‘‘‘0‘‘‘‘‘‘‘

Приріст атом збільшує свій аргумент на 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 - нерозбірливий nilad, тому попереднє повернене значення ( 3 ) друкується в STDOUT, а потім замінюється значенням nilad ( -1 ).

Далі, -_обчислює (-1) - (-1) = 0 , де літерал -встановлює лівий аргумент _і використовує повернене значення як праве. Наступні дев'ять примірників _віднімають аргумент за замовчуванням -1 від значення, що повертається, отримуючи 9 , який друкується неявно після завершення програми.

”(O

”(є буквальним символом, і порядковий атом Oшукає свою кодову точку Unicode, отримуючи 40 .

41 - 47

⁵ḶxḶ⁵ị⁵ḶxḶḣṢ

За відсутності третього аргументу командного рядка константа дорівнює 10 . Unlength атом створює діапазон 0 на основі, в зокрема [0, ..., 9] для аргументу 10 , по обидва боки повторі в місці атома x. Останній узгоджує елементи лівого аргументу з повторами правого та повторює кожен із елементів відповідної кількості разів. Маючи [0,…, 9] як аргумент зліва, так і справа, ми отримуємо, таким чином, нульові нулі, один, два подвійні тощо.

Індекс в атомі витягує елемент його правого аргументу за індексом , вказаною в його лівому. З лівим аргументом 10 ( зліва) та правою аргументом [1, 2, 2, 3, 3, 3, 4, 4, 4, 4,…, 9] (попередній результат), це дає 4 .

По ланцюгу до цієї точки супроводжується нерозбірливий nilad , тому за попереднім значенням повернення ( 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 - їхні кодові точки на кодовій сторінці Джеллі і (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 .

ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®

Перетасування атом рандомізують порядок елементів свого аргументу; заздалегідь просувається числовий аргумент z до діапазону [1,…, z] . Для неявного аргументу 0 цей діапазон порожній і дає [] . Все атом повертає 1 , якщо всі елементи її аргументу є truthy, 0 , якщо немає. Оскільки порожній масив не містить помилкових елементів, тут повертається 1 .

Блискавка з атомом ż(діади) приймає аргументи х і у і переставляє пару [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] .

Далі ®йде нерозбірлива рідина, тому попереднє повернене значення ( [4] ) друкується в STDOUT, а потім замінюється значенням nilad ( 10 ). Застосовуємо наступне, отримуючи 1 . (Це потрібно, оскільки внизування, за яким слідує діада, буде синтаксичним.)

Як і раніше, żvżvżvдодає три нулі до поточного поверненого значення, перетворюючи 1 в [1000] . Нарешті, ọ®обчислює порядок 10 на 1000 = 10 3 , а 3 друкується в STDOUT, коли програма закінчується.

44

Ще один редігіт, ще один буквальний.

111111l11&K1111111Kl11&

Перш за все, буквально 111111встановлює аргумент та початкове значення повернення 111111 . Інші прогони 1також є літералами.

l- атом логарифму , який обчислює логарифм його лівого аргументу на базі, вказаній у правій. Коли викликається 111111 з правильним аргументом 11 , ми отримуємо журнал 11 111111 ≈ 4.85 .

Слова атом Kприєднується список аргументів на просторах, після просування числового / символу г в [г] . Тут ми просто використовуємо його для перетворення аргументу 111111 посилання в [111111] . (Тут нам не потрібен масив, але у нас закінчилися атоми тотожності.) Побітовий І атом &приймає повернені значення в обидві сторони, при необхідності підкидає їх до цілого числа і обчислює їх побітові І. У цьому конкретному випадку він повертає [4.85 & 111111] = [4 & 111111] = [4] .

Далі 1111111йде нерозбірливий nilad, тому попереднє значення повернення ( [4] ) друкується в STDOUT, потім замінюється значенням nilad ( 1111111 ). Kпотім перетворює це ціле число в [1111111] . (Це знову-таки не дуже потрібно, але внизування, за яким слідує діада, буде симпатичним для цього.)

Як і раніше, l11обчислює журнал 11 1111111 ≈ 5,81 , потім &повертає [5.81 & 111111] = [5 & 111111] = [5] .

,SS
ỊỊ,ÇS
ÇÑÇÇÇÑ

Це єдина програма, яка складається з декількох визначених користувачем посилань. Останнє посилання є основним посиланням і виконується при запуску програми, решта - помічники. Швидкий Çзавжди посилається на посилання вище поточного та виконує його монадно. Аналогічно, швидкий Ñзавжди посилається на посилання нижче поточного (обгортання), а також виконує його монадно.

Верхня ланка складається з парного атома ,- діади, яка перетворює аргументи х і у в [х, у] - і атома суми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 ланцюг ÇÑÇÇÇÑобчислює кінцевий результат (((((0 × 2 + 1) × 2) × 2 + 1) × 2 + 1) × 2 + 1) × 2 = ((5 × 2 + 1) × 2 + 1) × 2 = 46 .

ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

Наступний простий атом знаходить найменше позитивне просте число, яке строго більше , ніж її аргумент. При початковому поверненому значенні 0 п'ятнадцять викликів Ænобчислюють п'ятнадцяте просте число, що становить 47 .


7
Я витрачав цілий день, намагаючись наздогнати Нейма 38, а потім прокручую вниз і бачу це. Виклик прийнято!
Кудлатий

1
TL; DR У вас це нараховується до 47, і ви є майстром в Jelly.
стилі

Чи всі "атоми" поодинокі байти, як вимагається у виклику? Якщо так, яке кодування це?
М.Герцкамп

4
@ M.Herzkamp Jelly використовує власну кодову сторінку .
Денніс

1
Зараз я вперше детально прочитав пояснення. Це справді вражаюче. Деякі з них просто смішні :-)
Стюі Гріффін

62

brainfuck , оцінка 2, 255 144 10 байт

... Так, не найкраща ідея, оскільки у мене є лише 8 символів (tarpits going tarpit) для роботи, але давайте подивимося, наскільки це можливо. Я думаю, що це все, що можливо. : P Ця відповідь демонструє шість із восьми символів, які використовує мозковий ебать, два інших - ,це вхідні дані і .які є вихідними.

+
>--[<->-]

Візуалізуйте його в Інтернеті!

Пояснення

Кожне число створюється і зберігається у вихідній комірці на стрічці. Значно покладається на обгорткові комірки, які не реалізовані в кількох перекладачах.

1 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

+  increment the current cell

[ 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

2 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-- decrement the current cell twice

[ 0 |254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[  while the current cell is not 0
<  move to the previous cell
-  decrement the current cell

[255|254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-  decrement the current cell

[255|253| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

]  repeat while the current cell is not 0

...

[ 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[ 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

[ 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

5
Тепер зробіть це в мозку. : P
DJMcMayhem

38

Нейм , оцінка 38, 327 байт

1: 𝔼
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
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: 𝐓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𝐓𝔻0𝐓𝔻
36: ℂ𝐋𝐠𝐋𝐠𝐋𝐠𝐋𝐝𝐬𝕏𝐬
37: α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊
38: 𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝐥

Пояснення:

  • Для 1 ми використовуємо маркер "перевірка рівності", використовуючи тут те, що коли Нейм намагається вивести на порожній вхід, він отримує 0. Оскільки 0 і 0 еквівалентні, це натискає 1, що неявно друкується
  • З 2 по 9 ми просто використовуємо числові літерали.
  • З 10 по 32, Нейм насправді має по одному байтові константи для всіх (так, це божевільно).
  • Для 33 ми використовуємо лише команду збільшення. На першому байті Нейм намагається вивести щось, щоб воно могло збільшити його, але оскільки вхід порожній, він за замовчуванням вискакує 0.
  • Для 34 ми використовуємо той самий підхід, але декрементуючи і приймаючи абсолютне значення.
  • Для 35 років ми використовуємо той факт, що нульовий коефіцієнт - це один, і ми використовуємо це, дублюючи один і багаторазово додаючи
  • Для 36 ми використовуємо для перевірки 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.
  • Для 37 α- це константа, яка представляє негативну, і ми кілька разів її натискаємо і віднімаємо (знову використовуючи той факт, що при спробі вискакувати порожній вхід 0 висувається)
  • Для 38 разів, використовуючи за замовчуванням 0 для порожнього введення, ми продовжуємо додавати 0 до себе, створюючи довгий список, а потім обчислюємо довжину.

Можна спробувати тут


3
Ви переплутали щось близько 36-37.
Erik the Outgolfer

2
Хіба не ті спеціальні символи, закодовані більш ніж 1 байт? Якщо так, то це зробило б 860 байт відповідно до лічильника байтів mothereff та правил виклику all characters must be encoded using a single byte in the language you choose. Чи Neim кодує цих спеціальних символів лише в 1 байті? Як?
Hankrecords


2
Ви ще не використовували персонаж 1. Звичайно, ви можете це використати?
Бергі

34

Пітон 2, 15

Ось початок, шукати більше

Завдяки лео, підказки якого допомогли мені дістатися до 15

[[[]]>[]][[]>[]]>>[[]>[]][[]>[]]

2

import math
print'%i'%math.pi

((()<())<())<<((()<())<())<<((()<())<())

5

6

7

8

9

11^1 

33/3

4--4--4

__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__

q=""=="";qq=q=="";qqq=~q*~q*~q;~qqq*~q*~qq

0xF

2
Ви можете використовувати -~-~-~-~-~-~-~-~-~[[]==[]][[]<[]]для 10 і 0xD13 для меншої загальної кількості байтів
ovs

Не могли б ви скористатися тим, що ''is''оцінює значення true, щоб зробити інше число?
Notts90

@ Nots90 На жаль, я не працюю, щоб зробити щось із цього. Якщо ви знайдете будь-який спосіб введення нових номерів або булелів, повідомте мене про це
Sriotchilism O'Zaic

1
14 відсутній парен закриття:((()<((),))|(()<((),))<<(()<((),))|(()<((),))<<(()<((),))<<(()<((),)))<<(()<((),))
TemporalWolf

1
Для запису ваш останній версії не використовував наступне з 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
wnnmaw

23

Japt , 448 байт, оцінка 42

Велика співпраця між Shaggy , ETHproductions та Oliver .

v
y
Íà
Qiiii)iiii)âQ
ÂHq
LÁL
´Vn´VnVnVn
8
9
A
B
C
D
E
F
G
J-----J---J---J---J
[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x
;Iìw
~~½e½e½e½e~½e½
++T+++T+++T+++T+++T+++T
22
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
4á
5²
°UU°°°U°°U°°U°°U°°U
»³³
7/¼
$'_____________________________b'$bb
ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa
Sc
33
Mg011
##
6p
Rí í í í í è.
`¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥`l
¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o
º¤¤*º¤*º¤
(Å<<(Å<<(Å<<(Å<<(Å<<(Å^(Å<<(Å<<(Å<<(Å^(Å
Y±Y¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

Ці (корисні) символи залишаються:

!%&,:=>?@OPWX\dfhjkrstuz{}¡¢£¦§©ª«¬®¯¸ÀÃÆÇÈÐßãäåæçéêëîïñóôõö×øÿ

Пояснення

Ще кілька речей, які потрібно знати про Japt, перш ніж ми розпочнемо, що я часто використовував. По-перше, Japt має 6 змінних, зарезервованих для введення, серед яких великі літери U-Z. Якщо через ці змінні не вводиться жодне введення, всі вони за замовчуванням 0. Друга річ висвітлена в цій підказці .

Клацніть будь-який фрагмент, щоб спробувати його в онлайн-перекладачі .


v

При застосуванні до числа vметод приймає ціле число n як аргумент і повертає 1, якщо число ділиться на n , 0 якщо ні. Якщо n не надається, він за замовчуванням дорівнює 2 . 0 (значення за замовчуванням U) є ділиться на 2 , так що це дає нам 1 .


y

Дуже схожий на перший. Застосовуючи число, yметод приймає ціле число n як аргумент і повертає GCD двох чисел. Якщо n не надається, він за замовчуванням дорівнює 2 . Оскільки 0 ділиться на 2 , GCD (0, 2) дає нам 2 .


Íà
Í- це ярлик для n(2)або 2- this. Оскільки у нас немає вхідних даних, ми за замовчуванням thisдо 0цього призводимо 2-0 = 2.

àповертає кількість комбінацій [1...this], яка повертає 3


Qiiii)iiii)âQ

Qза замовчуванням до одного лапки. iна рядок вставляється інша рядок на початку; як пояснено у №3 , кожен iiii)еквівалентний .i("i".i("i"))JS, таким чином вставляючи дві копії iна початку рядка. Зробіть це двічі, і у вас є рядок iiii". âQпотім моделює .search(Q), даючи індекс першого "в рядку, який дорівнює 4 .


ÂHq
Hє константою для 32 . При застосуванні до числа qметод, який приймає ціле число n як аргумент, повертає n- й корінь цього числа. Якщо n не введено, значення за замовчуванням дорівнює 2, то Hqдає нам квадратний корінь 32, що становить приблизно 5,6568 . Âце ярлик для ~~, який визначає результат, даючи нам 5 .


LÁL
Lзаздалегідь встановлено 100 , і Áце ярлик для >>>(нульове заповнення бітним правою зміною). 100>>>100те саме, що 100>>>4(правий операнд обертає mod 32), що дорівнює 6 .


´Vn´VnVnVn

Як зазначалося раніше, Vза замовчуванням до 0 . ´- це ярлик --оператора, тому код еквівалентний наступному JS:

(--V).n((--V).n(V.n(V.n())))

X.n(Y)еквівалентний Y - X , або -X + Y ; перший --Vповертає -1 , а другий -2 , тож це приблизно еквівалентно - (- 1) + (- (- 2) + (- (- 2) + - (- 2))) . Спрощуючи, отримуємо 1 + 2 + 2 + 2 = 7 .


8
9

Буквально, 8 і 9 .


A
B
C
D
E
F
G

Ці константи для 10 - 16 включно.


J-----J---J---J---J

Jзадано -1 . Інтерпретатору Japt якось вдається проаналізувати це правильно, як (J--) - (--J) - (--J) - (--J) - (--J). Виконуючи ще математику, ми виявляємо, що це рівносильно (-1) - (-3) - (-4) - (-5) - (-6) , або -1 + 3 + 4 + 5 + 6 = 17 .


[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x

¾це, як ви могли здогадатися, ярлик для .75. Поміщаємо 24 копії 0,75 в масив, потім підсумовуємо x, даючи 0,75 * 24 = 18 .


;Iìw

Я думаю, що це моя улюблена. ;на початку програми змінює значення деяких констант Japt; без нього Iце 64 , але з ним, Iце 91 . ìwперетворює його у список цифр і працює wза списком, обертаючи масив, а потім перетворює назад на число, щоб отримати нас 19 .


~~½e½e½e½e~½e½
½- це ярлик для .5. eна число x бере аргумент y і повертає x * 10 y . Отже, ланцюжок розрахунків, що відбувається:

           ½e½     1.5811  (.5 * sqrt(10))
          ~       -2
        ½e         0.005  (.5 * (10 ** -2))
      ½e           0.5058
    ½e             1.6024
  ½e              20.0138

І фінал ~~служить для підрахунку цього до цілого числа, даючи наш результат 20 .


++T+++T+++T+++T+++T+++T
Tзадано 0 . ++є оператором приросту в JS, а також у Japt; T+++Tаналізується як (T++) + T, але ++T+++Tаналізується як (++T) + (++T), так що це еквівалентно JS-коду

(++T) + (++T) + (++T) + (++T) + (++T) + (++T)

Результат - 1 + 2 + 3 + 4 + 5 + 6 , що становить 21 .


22

Буквальне 22 .


ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Äце ярлик для +1, тому це просто підсумовує 23 1 с.


Це знаходить кількість перестановок [1, 2, 3, 4], що дорівнює 4! = 24 .


²- це ярлик для p2, який піднімає число до потужності двох. 5 ** 2 - 25 .


°UU°°°U°°U°°U°°U°°U

°ярлик для ++оператора, або якщо він не може бути проаналізований як такої, + +. Як зазначалося раніше, коли немає вводу, Uза замовчуванням до 0 . Таким чином, код еквівалентний (++U), (U++) + + (++U) + + (++U) + + (++U) + + (++U) + + (++U), що дуже схоже на №17 : Uспочатку збільшується 1, потім багаторазово збільшується і додається таким, що кінцевий результат дорівнює 1 + 3 + 4 + 5 + 6 + 7 = 26 .


»³³

³- це ярлик для pметоду з аргументом 3 . Однак якщо маленька літера з’являється безпосередньо після лівої дужки ( »це ярлик для ((), вона стає рядком. Це дозволяє йому перейти до методу і викликати як функцію (тобто було б відображення за допомогою .p(3)). У цьому випадку, однак, ("p",3)повертаємо наше 3, то ми піднімаємо його до сили 3( pце метод потужності при застосуванні до числа), який дає нам свої 27 .


7/¼

¼, як ви, мабуть, знаєте на даний момент, це ярлик для .25, тому це обчислює 7 / 0,25 = 28 .


$'_____________________________b'$bb

Все, загорнуте в $символи, трактується як чистий JavaScript, тому у нас виникла рядок із 29 підкреслень, а за ними - a b. (Без рядка $, 'це буде однозначний рядок.) bМетод, застосований до рядка, повертає перший індекс його аргументу в межах цього рядка. Як пояснено у №3 , останній bперетворюється на рядок, тому ми захоплюємо перший індекс bнашого рядка, який дорівнює 29 .


ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

µ- це ярлик для -=і Éдля -1. Ефект віднімання 30 копій -1 від 0 , що дає 30 .


"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa

Дуже подобається №29. aМетод, коли застосовується до рядка, повертає останній індекс аргументу в цьому рядку. Використовуючи 0-індексацію, останній індекс aу рядку 32 as становить 31 .


Sc

Sзаздалегідь визначений для єдиного простору, а cна одночастовій рядку повертає свій char-код, даючи 32 .


33

Літеральна 33 .


Mg011

MgNповертає N число Фібоначчі. 011дорівнює 9 в восьмериці; 9 число Фібоначчі - 34 .


##

#повертає char-код наступного символу. Сам по собі char-код, #як правило, становить 35 , що робить нашу роботу тут особливо легкою.


6p

p- це експоненція, і без другого аргументу вона за замовчуванням до 2 ; таким чином, це друкує 6 ** 2 = 36 .


Rí í í í í è.

Цей досить складний. Rза замовчуванням для одного символу нового рядка (що це новий рядок стає важливим пізніше). íна рядок, без жодних аргументів, приймає кожен символ і додає його індекс: досить марне перетворення, але результат через 5 ітерацій такий: (використовуючи Rзамість буквального нового рядка)

R
R0
R001
R0010213
R001021304251637
R0010213042516370849210511112613314715

Цікаво, як кожен запис - це просто префікс наступного… Але все одно, остання частина è., підраховує, скільки збігів /./gзнайдено в результаті. У рядку є 38 знаків; однак, оскільки відповідає /./gлише новим рядкам, результат 37 .


¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥l

Зворотні позначки позначають стислий рядок і ¥розтискають до ll. lна струні дає length, тому після декомпресії це дає 38 .


¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o

Ой, хлопче, цей дозі. По-перше, ми генеруємо за trueдопомогою ¨N( ¨розшифровується >=, і Nбез входів є порожній масив), потім перетворюємо його 1в |N. Звідти він стає досить божевільним:

ò    Inclusive range [0..1],            [0, 1]
 ò   making each an inclusive range.    [[0], [0, 1]]
m·   Join each on newlines.             ["0", "0\n1"]
·    Join on newlines.                  "0\n0\n1"
·    Split on newlines.                 ["0", "0", "1"]
m    Map each item X and index Y to     
 |     X | Y.                           ["0" | 0, "0" | 1, "1" | 2] -> [0, 1, 3]
m    Map each by 
 ò     inclusive range.                 [[0], [0, 1], [0, 1, 2, 3]]
m··· Same as before.                    ["0", "0", "1", "0", "1", "2", "3"]
m|   Bitwise OR thing again.            [0, 1, 3, 3, 5, 7, 7]
mò   Map each by inclusive range.       [[0], [0, 1], ..., [0, 1, 2, 3, 4, 5, 6, 7]]
m··· Same as before.                    ["0", "0", ..., "5", "6", "7"]
m|   Bitwise OR again.                  ["0"|0, "0"|1, ..., "5"|30, "6"|31, "7"|32]
                                        -> [0, 1, ..., 31, 31, 39]

( ¹S - це лише замінники закритих паролів і були опущені.) Заключний oвискакує та повертає остаточний елемент у масиві, даючи 39 .


º¤¤*º¤

Переважно той самий трюк, що і для №3 . ¤- це ярлик для sметоду з аргументом 2 . У цьому випадку, однак, transpiled код (("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¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

±- це ярлик для +=і для ===. Це означає, що код є насправді

Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y

Y===Y завжди правда, тому ми можемо спростити це:

Y+=1,Y+=Y,Y+=Y+=1,Y+=Y,Y+=Y+=1,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, хоча.
ETHproductions

@ETHproductions: просто використовується qдля того, 5щоб дозволити мені використовувати lдодаткове число. Працюю над альтернативою для того, 2щоб я міг =повернутися.
Кудлатий

@Shaggy Ви можете використовувати для 2. L>>Lможна звільнити 6. #w s Åможна звільнити ;іI
Олівер

Хороший трюк для 2, @obarakon; Я також використовував щось подібне, щоб звільнити 3. На жаль, це не буде працювати для 19, як я вже звик #для 21
Shaggy

Я думаю , ви можете поміняти місцями 22 з 18 , щоб заощадити кілька байт і отримати назад *і^
ETHproductions

18

PHP, оцінка 17, 130 байт

використані символи ADEFGIKLMOPRSTVXYZ=_![]()<>'"#$,;/-+*|^&0123456789afhnprstwx

Z==Z
FTP_MOREDATA
';'&w
![]<<![]<<![]
5
6
"#"|"$"|"1"
8
SIGKILL
333333>>3>>3>>3>>3>>3
99/9
22-2-2-2-2-2
strspn(XXXXXXXXXXXXXX,X)
7+7
0xf
4*4
ha^YV

1 Булева константа Z (не встановлено) дорівнює постійній Z

2 FTP_MOREDATA - константа в PHP зі значенням 2

3 бітові та символи; і ш

4 бітовий зсув ліворуч і логічний не приведений порожній масив до булевого істинного з приведеним до цілого числа 1 через оператор зрушення ліворуч

7 бітових або символів # і $ і 1

9 SIGKILL - константа в PHP зі значенням 9

10 бітним зсувом вправо кожен крок є цілим поділом на 8, тому у нас є кроки 333333, 41666, 5208, 651, 81, 10

13 рахуйте char X у рядку X ... від початку

15 шістнадцяткове значення f = 15

17 бітовий Xor з струнами ha та YV

Усі фрагменти - це елементи в масиві

Спробуйте в Інтернеті!

PHP, оцінка 16, 94 байт

використані символи AEIMPRTUZeflnrstvwx^_&|()[]=!.*+/-<>$":0123456789

Z==Z
":"&"w"    
M_PI|[]
TRUE<<TRUE<<TRUE
5
6
A^v    
8
9
!$s.strlen($s)    
77/7
3+3+3+3
111>>1>>1>>1    
22-2-2-2-2
0xf
4*4

1 Булева константа Z (не встановлено) дорівнює постійній Z

2 бітові та символи: і w

3 Pi передано на ціле значення через порожній масив, поданий на нуль

7 бітових символів A і v

10 змінної $ s не встановлено! $ S = один конмат з довжиною рядка змінної $ s

13 111/2 = 55/2 = 27/2 = 13 Ціле ділення порозрядно

15 шістнадцяткове значення f = 15

Усі фрагменти - це елементи в масиві

Спробуйте в Інтернеті!

PHP, оцінка 14, 84 байт

використані символи $!_^[]()%/+~-=AEILMNPRUZ0123456789delnrstx

Z==Z
2
M_PI^[]
4
5
6
ERA%11
8
9
!$s.strlen($s)
77/7
3+3+3+3
0xd    
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-NULL

1 Булева константа Z (не встановлено) дорівнює постійній Z

3 Pi передано на ціле значення через порожній масив, поданий на нуль

7 ERA - константа зі значенням 131116 mod 11 = 7

10 змінної $ s не встановлено! $ S = один конмат з довжиною рядка змінної $ s дорівнює нулю

13 шістнадцяткової величини d = 13 14 порозрядних знаків і знак мінус піднімають NULL до 14

Усі фрагменти - це елементи в масиві

Спробуйте в Інтернеті!


17

R, оцінка 13 14

F^F                       # F==0 in R
q=""=="";q--q             # ""=="" is TRUE, TRUE == 1 (Thanks WheatWizard)
3
4
5
6
7
8
9
1e1                       # scientific notation for 10
22/2
T+T+T+T+T+T+T+T+T+T+T+T   # T == 1
0xD                       
sum(mtcars$vs)            # mtcars is a built-in dataset, summing the $vs column gives 14

Отримав додатковий завдяки користувачеві2390246.

Використовувані символи:

0123456789acemqrstuvxDFT^=";-/+()$


1
Ви можете розтягнутись до 14, якщо нам дозволяється використовувати вбудовані набори даних. 1:, F^F2 "n"%in%"n"+"n"%in%"n":; 3-9: цифри, 10:, 1e111:, 22/212:, T--T--T--T...13:, 0xD14:sum(mtcars$vs)
користувач2390246

Чудове використання %та роздуми щодо використання вбудованих наборів даних. Я не бачу, чому це не було б добре.
BLT

Мені було цікаво, чи можна буде знову отримати ще один, використовуючи вбудовані дані: якби був набір даних із названими рядками та стовпцями, ви могли б мати команду по рядках dataset['A','B'], за умови, щоб уникнути перекриття вже використаних букв (і трапляється містити корисне значення!). На жаль, наскільки я можу швидко зрозуміти, всі набори даних з названими рядками містять букву i, тому вона не сумісна з використанням %in%.
користувач2390246

Хммм. Для 2, ви можете використовувати трюк з відповіді Python WheatWizard в: q=""=="";q+q. Це звільнило б використання букв iі n. Не
встигайте

Я думаю, ти маєш рацію. Головною проблемою, здається, є пошук набору даних, який не використовує i, n, s, u, m, t, c, a, r, e, x або v. Повернення деяких листів має допомогти.
BLT

16

MATL , оцінка 21 22 23 числа (273 байти)

Дякуємо J Doe за те, що він поширився з 22 на 23 номери!

0~
'bd'd
{P}gk
HH^
5
6
7
8
9
3 3.333333333333333*
11
IEE
[B]Yq
llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx
KUKUa-
4W
FFFFFFFFFFFFFFFFFn
TTTTTTTTTTTTTTTTTTs
rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz
OOOOOOOOOOOOOOOOOOOOvZyX>
JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/
22
`@QQQQQQQQQQQQQQQQQQQQQQ@@<

Спробуйте в Інтернеті! Кожен фрагмент у посиланні закінчується абоD(відображення), або]D(явно закрийте цикл і відображаючи), щоб очистити стек і таким чином ізолюватись від наступного фрагмента.

Пояснення

0~

Штовхати 0. Негат. Дає true, що відображається як 1.

'bd'd

Натисніть на рядок 'bd'. Послідовна різниця між кодовими точками символів.

{P}gk

Натисніть на масив комірок, що містить число pi. Перетворити в числовий масив (тобто в єдине число). Закругніть вниз.

HH^

Натисніть 2двічі. Потужність.

5

Числовий буквальний.

6

Числовий буквальний.

7

Числовий буквальний.

8

Числовий буквальний.

9

Числовий буквальний.

3 3.333333333333333*

Штовхати 3. Штовхати 3.333333333333333. Помножте. Завдяки точності з плаваючою комою це дає 10.

11

Числовий буквальний.

IEE

Штовхати 3. Помножте на 2два рази.

[B]Yq

Натисніть [6](що таке саме 6). Обчислити n -й простим.

llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx

Натисніть 114 разів. Кількість елементів у стеці. Очистіть решту стека.

KUKUa-

Штовхати 4. Майдан. Зробіть те саме. Будь-яка: дає 1. Відняти.

4W

Штовхати 4. 2підняли до цього.

FFFFFFFFFFFFFFFFFn

Натисніть на масив [false false ... false](17 разів). Кількість елементів у масиві.

TTTTTTTTTTTTTTTTTTs

Натисніть на масив [true true ... true](18 разів). Сума масиву.

rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz

Натисніть 19 випадкових чисел, взятих з інтервалу (0,1). Об'єднайте горизонтально 18 разів. Кількість ненульових елементів у масиві.

OOOOOOOOOOOOOOOOOOOOvZyX>

Натисніть 020 разів. Об'єднайте вміст стека вертикально (дає вектор стовпця). Розмір: дає масив [20 1]. Максимум масиву.

JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/

Натисніть 1j(уявна одиниця) 21 раз. Додайте 20 разів. Розділити на 1j.

22

Числовий буквальний

`@QQQQQQQQQQQQQQQQQQQQQQ@@<

Зробіть ... while loop ( `) з неявним кінцем. Під час першої ітерації він висуває індекс ітерації ( @) та збільшує його ( Q) у 22 рази, що дає результат 23. Умова циклу ( @@<) хибне, тому цикл виходить.

Деякі ідеї для подальшого вдосконалення

  • (пробіл) у фрагменті 10 можна замінити на |
  • X>у фрагменті 20 можна було б замінити p, тим самим звільнивши префікс X.
  • В даний час НЕ використовується і потенційно корисним: :,A

Ви б заперечували, включаючи кількість байтів?
Okx

@Okx Включено зараз
Луїс Мендо

15

Vim 8 для Windows, оцінка 13, 104 байти

1
2
3
4
5
6
7
^R=&ts^@
9
8^O^A^O^A
0^[^X^X^X^X^X^X^X^X^X^X^X0x
:h<CR>wwwwwwwwwwwy$:q<CR>p
grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD

^{keystroke}являє <C-{keystroke}>, так ^Xє <C-x>, за винятком ^@якого є <C-j>. Я все ще намагаюся додати більше номерів до цього списку і <CR>являє собою стрічковий канал.

Примітка: щоб виконати ці команди, почніть використовувати vim -u NONE -U NONE. Це потрібно для того, щоб ваші конфігурації не заважали коду.

Знімки з 1 по 10 починаються у режимі вставки. У той час як фрагменти 12 і 13 починаються в звичайному режимі.

Пояснення

Знімок 8 є :^R=&ts^@. Я повинен подякувати @ L3viathan за те, що придумав це, і @ nmjcman101 за те ^@, що він запропонував замінити linefeed і @ Ø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, яке містить таку інформацію:

*help.txt*  For Vim version 8.0.  Last change: 2016 Sep 12

І послідовність ws переходить до числа 12, після чого y$число копіює число. Потім він вставляється в редактор за допомогою p.

Snippet 13 grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llDдякує @DJMcMayhem за те, що він придумав його. Це працює лише в Windows. Фрагмент шукає у меню довідки команди, починаючи з g. Потім він рухається вниз, використовуючи, jщоб дістатися до цієї лінії:

|g?|        g?      2  Rot13 encoding operator

після цього він копіює його і вставляє в буфер. Після цього все, крім 13, виймається з буфера.


Дозволені знімки.
Лина монашка

Дали ^R=&tabstop+&tabstop+&tabstop<CR>Pб вам 12, або <CR>вже використовується через ^M?
L3viathan

1
Так, я мав на увазі, <CR>коли сказав ^M, але спасибі, я зараз розбираюсь у видаленні ^Mфрагмента 8 :)
Корови кракають

1
@WheatWizard Клавіша управління не вважається натисканням клавіш і не байтом, але вона використовується в поєднанні з іншими ключами, і вони вважатимуться байтами. Наприклад, Ctrl + A дає байт, 0x01тоді як Ctrl + X дає 0x18. І зрозуміло, що ці два є окремими байтами. Чи має це сенс?
Корови кракають

1
@ L3viathan При запуску vim з -u NONE -U NONE, &tabstopоцінює до 8. Тож я поміняв це на 8 фрагмент з деякими модифікаціями, дякую :)
Корови кракають

13

Математика, оцінка 13

x~D~x
⌊E⌋
3
⌈Pi⌉
5
6
LucasL@4
8
9
0!+0!+0!+0!+0!+0!+0!+0!+0!+0!
77/7
Tr[{11,1}]
-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I

Ви, ймовірно, повинні видалити зайві символи пробілу, схоже, що ви використали цей символ в іншому випадку.
Ørjan Johansen

1
це не проблема. Я їх видалю.
J42161217

2
"Усі символи повинні бути закодовані за допомогою одного байту на ⌊⌋⌈⌉
вибраній

Ми можемо уникнути ⌊⌋⌈⌉, перетворившись ⌊E⌋на Floor@GoldenRatio, ⌈Pi⌉в 4, LucasL@4у 7і 77/7в 22/2. Можливо, можливо, піти хоча б на крок далі, застосувавши функцію з//
Міша Лавров

12

05AB1E , оцінка 18, 67 байт

X     Variable is initialized to 1
Y     Variable is initialized to 2
2>     2 + 1
4
5
6
7
8
9
T     Constant 10
3b     3 in binary
•C     Ascii code of 'C'
11Ì     11 in hex
A'ok     Index of 'o' in the alphabet
žz¨¤x+     Middle character of '256' times 2, plus itself
¾<<<<n     Variable initialized to 0, 4 times -1, squared
‘c‘‘c‘QDJH     'c' equals itself (true = 1), duplicated, converted from hex to dec
тD÷·±D*·     Constant 100, divided by itself, * 2, bitwise not, times itself, * 2
"d"aÐÐÐÐÐÐÐÐÐ)O     "d" is_alpha (true = 1), triplicated 9 times, total sum

Спробуйте в Інтернеті!


13
Ваш відповідь A'ok:)
Okx

Ось ще три: „((Ç;¬= 20.0(двобайтові знаки "(("; до порядкових значень; половина обох; взяти хвіст); ₁.²₁P₃/ï= 21(log-2 на 256; помножено на 256; розділене на 95; десяткові знаки вилучено); ₂Ågttγć= 22(26-й термін Лукаса; два рази з корінням прямокутних; розділений на патрони рівних елементів; витягнута голова). Два останніх були пробними та помилковими ..;)
Кевін Кройсейсен

9

PingPong , оцінка 127

У PingPong кожен персонаж має своє чітке числове значення, завдяки чому підрахунок до 127 є тривіальним завданням. Мова працює, читаючи значення кожного символу і висуваючи його до вершини стека, де виконуються всі операції. PingPong теоретично може пройти повз 127, але це потребує передачі блоку символів, які просто відображаються як пробіли в текстовому редакторі, тож я залишив їх поза рішенням.

1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: A
11: B
12: C
13: D
14: E
15: F
16: G
17: H
18: I
19: J
20: K
21: L
22: M
23: N
24: O
25: P
26: Q
27: R
28: S
29: T
30: U
31: V
32: W
33: X
34: Y
35: Z
36: a
37: b
38: c
39: d
40: e
41: f
42: g
43: h
44: i
45: j
46: k
47: l
48: m
49: n
50: o
51: p
52: q
53: r
54: s
55: t
56: u
57: v
58: w
59: x
60: y
61: z
62: ©
63: ®
64: À
65: Á
66: Â
67: Ã
68: Ä
69: Å
70: Æ
71: Ç
72: È
73: É
74: Ê
75: Ë
76: Ì
77: Í
78: Î
79: Ï
80: Ð
81: Ñ
82: Ò
83: Ó
84: Ô
85: Õ
86: Ö
87: ×
88: Ø
89: Ù
90: Ú
91: Û
92: Ü
93: Ý
94: Þ
95: ß
96: à
97: á
98: â
99: ã
100: ä
101: å
102: æ
103: ç
104: è
105: é
106: ê
107: ë
108: ì
109: í
110: î
111: ï
112: ð
113: ñ
114: ò
115: ó
116: ô
117: õ
118: ö
119: ÷
120: ø
121: ù
122: ú
123: û
124: ü
125: ý
126: þ
127: ÿ

5
Гаразд, це навіть не чесно ...: P
MD XF

уау, це наче ця мова була зроблена для цього виклику: D
V. Courtois

TIL про ще одну дивну мову :)
roblogic

8

Октава, оцінка 14, 74 байти

Досить впевнений, я зараз на межі.

1:  ~0                        % Not 0 == 1
2:  "H"/"$"                   % "H" = 72, "$" = 36. H/$ = 2
3:  3                         % Literal
4:  4                         % Literal
5:  5                         % Literal
6:  6                         % Literal
7:  7                         % Literal
8:  8                         % Literal
9:  9                         % Literal
10: ceil(pi*pi)               % pi*pi = 9.87. ceil(9.87) = 10
11: 11                        % Literal
12: 2+2+2+2+2+2               % Well, not much to say
13: ['','RT'-'!']             % 'RT' = [82,84]. Subtract '!' (33) to get ['',49,51]=13
14: nnz...                    % Number of non-zero elements in the string...
    nnnnnnnnnnnnnn            % on this line. (This is an awesome trick by the way!)

Довелося видалити , strchrтак як у мене вже є cв кількості 10. Я до сих пір j, ^, =, !, простір і горизонтальна табуляція (ASCII-9) вліво, так що можна було б вичавити ще один в.

Горизонтальна вкладка може використовуватися як пробіл, тому трюк використовується strchrі nnzможе бути використаний ще один раз. Залишилися лише малі літери abdfgjkmoquvwxy. Існує не так багато функцій, які можна зробити з них. modможе працювати, але він не може приймати рядок.

Використовувати інші символи легко 1, але я не знаю, як я можу отримати щось інше.

Перевірте всіх .

Можливо, корисно: fun aце те саме fun('a'), що fun a bтаке, як fun('a','b')і так далі. Для цього можна скористатися кількома місцями:

gt t g    % Equivalent to 't'>'g'. Returns 1. Uses space (available)
or o r    % Equivalent to 'o' | 'r'. Returns 1. 

Використання цього стане 0доступним, але я не бачу, як зробити його корисним.

e (2.71828...)і jдосі не використовуються. Потрібно видалити, ceilщоб користуватися e.

Альтернативи (натхнення):

1:  ~0             % Not 0 = 1
2:  2              % Numeral
3:  3              % Numeral
4:  fix(i^i^i^i)   % Numeral
5:  5              % Numeral
6:  6              % Numeral
7:  7              % Numeral
8:  8              % Numeral
9:  9              % Numeral 
10: 1+1+1+1+1+1+1+1+1+1   % Well, not much to explain
11: ['','RR'-'!']  % RR are [82,82] in ASCII, subtract 33 (!) to get
                   % [49,49], and concatenate with the empty string to convert [49,49] to 11 
12: nnz nnnnnnnnnnnn   % Number of non-zero elements in the string containing 12 n
13: "4"/4          % "4" = 52. Divide it by 4 to get 13.

7

JavaScript (ES7), 16 цілих чисел, 137 130 128 байт

Я взяв відповідь @ETHproductions і побіг з нею деякий час; він настільки змінений, що я публікую його окремо. Ідеї ​​вітаються. :)

""**""
-~-~{}
3
C=CSS==CSS;C<<C<<C
5
6
7
8
9
++[[]][+[]]+[+[]]
11
4444444444444444444%44
222>>2>>2
`..............i`.indexOf`i`
0XF
atob('MTY')

Залишилося:
$_@#!^&|/?:, ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz

Або якщо фрагмент для 1 замінено на !!/!//!!/!/:
$_@#^&|*?:", ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz


JavaScript (ES7), 16 цілих чисел, 127 байт

На один байт коротше. : P

""**""
-~-~{}
3
4
5
6
7
C=CSS==CSS;C<<C<<C<<C
9
++[[]][+[]]+[+[]]
11
`............i`.indexOf`i`
222>>2>>2
0XE
atob('MTU')
88888888888888888%88

Залишилося: $_@#!/^&|?:,ABDFGHIJKLNPQRVWYZcghjklmpqrsuvwyz


1
Збережіть 7 байт на 2 за допомогою -~{}-~{}: P Однак, в цілому, це досить добре. Шлях коротший, ніж мій напевно ...
ETHproductions

1
А у вас все ще !&/^|залишилося працювати, досить вражаюче. У разі необхідності, ви можете використовувати !!/!//!!/!/для 1 до торгівлі !/для "*.
ETHproductions

@ETHproductions Awesome!
darrylyeo

1
2 просто-~-~{}
GOTO 0

10 можна записати так +!![]+[+[]], доки немає кращого використання!
GOTO 0

7

Діалог APL, оцінка 15, 89 байт

≡''
≢###
3
4
⍴⍬⍬⍬⍬⍬
6
⌈○2
8
9
1E1
⎕D⍳⊂⎕D











l:l
7--7-×7
(~0 0 0 0 0 0 0 0 0 0 0 0 0 0)⊥~0
5+5+5

Нові рядки раніше l:lє частиною 12.

Пробіли в 14 представляють вкладки.


1
Я думаю, що ви можете використовувати пробіл і в 12, і в 14. Чи може APL використовувати вкладки замість цього?
Ørjan Johansen

@ ØrjanJohansen немає зайвого місця, але я помилково включив лінії, що розділяють фрагменти
Uriel

Я маю на увазі, що космічний персонаж, як видається, використовується у двох записах, 12 та 14.
Ørjan Johansen

@ ØrjanJohansen о, так, останній пішов би з вкладками.
Уріель

@Uriel кілька ідей: 0 0 0-> 0,0,0; ]fromhex f
ngn

7

> <> , оцінка 20, 93 90 74 65 байт

(3 байти, збережені Teal Pelican, багато байтів, збережених Джо Кінгом!)

iii((
2
3
ll{lll{[
5
6
7
8
!   00=0g
a
b
c
d
e
f
44*
'RA'%
999-9--
"&F#",,
1::+:++:+:+

Спробуйте їх на рибному майданчику! Ви можете змусити фрагменти друкувати їх результати, додаючи n;в кінець кожного. Зауважте, що 9-й фрагмент містить вкладку, яку їдять за допомогою обміну стеками.

Пояснення:

  • У iii((кожен iнамагається отримати введення, але так як немає ніякого, вони штовхають EOF = -1замість. Тоді (це менше, ніж інструкція, і оскільки -1вона не менша -1, вона підштовхує фальси 0; але другий (запитує, чи -1менше, ніж 0це, тож він штовхає правду 1.
  • 2і 3очевидні.
  • Бо ll{lll{[перший lвідсуває довжину стека, яка є 0, потім друга висуває нову довжину, доводячи стек до 0, 1. В {обертає стек зліва, поміняти місцями , 1і 0. Ще три ls принесуть стек 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::штовхає a 1і дублює його двічі, +додає два з них разом, щоб отримати 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відповідно.


1
Це чудово, я дивився на цю проблему і не міг зробити десь поблизу цієї криниці, але я вивчив твою і зміг трохи пограти в неї; 16 можна змінити, щоб бути; iii ((: i $ -: i $ -: i $ - i- і 1 слід змінити, щоб бути; 00 =, і ви зменшите обидва рядки на пару байтів.
Teal pelican

@Tealpelican, приємна робота, дякую!
Не дерево

1
-23 байти, змінивши наступні 2> iii((i-16> 2222***17> lll{lllll{{[{n(можливо, схематично, але якщо ви хочете вивести як одне число, принаймні є одне менше l) 18>11+::+:+:++
Джо Кінг

@JoKing, ух, це великий гольф! (Я поїхав із менш схематичною версією 17 - здавалося, більше відповідає правилам.)
Не дерево

1
Як щодо 17 => ! ll$gде простір замінено символом управління зі значенням 17 (управління пристроєм 1)?
Джо Кінг

7

MathGolf , 48 51 53 цілих числа, 324 байти

î
ª∞~
c±b±+
φⁿ_¥-
5
6
7
○¢i♀/
d²
♂
A
B
C
D
E
☻
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
♥
U
V
W
X
Y
Z
♫¼¼¼¼
88888]Σ
41
╔½½½½½½½½½½½
π░3§3
22#22#
τ╥└
♦⌡⌡⌡⌡⌡⌡⌡⌡⌡
!⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠
'0$
ÿ@@@@£9
))))))))))))))))))))))))))))))))))))))))))))))))))
►◄╠•╠
"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h 
♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

+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) ª∞~: Push [1]; подвоїти його ([2]); поп-список і натисніть його вміст на стек: Спробуйте його в Інтернеті.
3) c±b±+: Push -2; потім поп і натиснути його абсолютне значення; поштовх -1; потім поп і натиснути його абсолютне значення; і додайте їх разом Спробуйте в Інтернеті.
4) φⁿ_¥-: Висунути золоте співвідношення (1,618033988749895); кубик його (4.23606797749979); дублювати верхню частину стека; приймати модуль 2 (0,23606797749979); відняти їх один від одного: Спробуйте в Інтернеті.
5,6,7) Самі номери: Спробуйте в Інтернеті.
8) ○¢i♀/: Push 2048; перетворити в шістнадцятковий рядок (800); кинути на ціле число; натиснути 100; розділити:Спробуйте в Інтернеті.
9) : Push -3; в квадраті: Спробуйте в Інтернеті. 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) ♫¼¼¼¼: Push 10000; ціле число розділене на 4 чотири рази: Спробуйте в Інтернеті.
40) 88888]Σ: натисніть 8 п’ять разів; загорнути їх у список; підсумовуйте цей список: Спробуйте його в Інтернеті.
41) Саме число: Спробуйте в Інтернеті.
42) ╔½½½½½½½½½½½: Push 86400; ціле число розділене на 2 одинадцять разів: Спробуйте в Інтернеті.
43) π░3§3: Push PI (3.141592653589793); кинути на рядок; поп і натиснути його третій 0-індексований символ (4); натиснути 3; вивести весь стек об'єднано разом: Спробуйте в Інтернеті.
44) 22#22#: натисніть 2 два рази; візьміть силу двох (4); зробити це знову; вивести весь стек об'єднано разом: Спробуйте в Інтернеті.
45) τ╥└: Push 2 * PI (6.283185307179586); вискочити і натиснути на 2 сили нижче, ніж це найближче (4); просуньте верхню частину стека + 1, не вискакуючи (5); вивести весь стек об'єднано разом: Спробуйте в Інтернеті.
46) ♦⌡⌡⌡⌡⌡⌡⌡⌡⌡: Push 64; декрет на 2 дев'ять разів: Спробуйте в Інтернеті.
47) !⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠: Push gamma (n + 1) (1 за замовчуванням); приріст у 2 двадцять три рази: Спробуйте в Інтернеті.
48)'0$: Натисніть порядкове значення символу "0": спробуйте в Інтернеті.
49) ÿ@@@@£9: Push string "@@@@"; попнути і натиснути на його довжину (4); натиснути 9; вивести весь стек об'єднано разом: Спробуйте в Інтернеті.
50) )))))))))))))))))))))))))))))))))))))))))))))))))): Приріст в 1 п’ятдесят разів: Спробуйте в Інтернеті.
51) ►◄╠•╠: Push 1 000 000; Натисніть 10 000 000; попу обидва і цілочисельні розділити їх між собою (10); натиснути 512; поп і обидва, і цілочисельне ділення їх між собою: Спробуйте в Інтернеті.
52) "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h : Штовхача струна "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"; просуньте його довжину (не висуваючи струну); видаліть усе зі стека, крім останнього: Спробуйте в Інтернеті.
53) ♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((: Push 128; зменшено в 1 сімдесят п’ять разів: Спробуйте в Інтернеті.

Спробуємо додати ще трохи згодом. У мене ще залишилось кілька корисних речей, включаючи модуль %та множення *.


Я працював над рішенням для цього, але я застряг, намагаючись оптимізувати 1-9. Як тільки ви дістанетесь до 10, це стає тривіально досягти 38. Кілька речей, які я помічаю з першого погляду: 88888ΓΣαΣ-> 88888]Σабо 88888§§§§Σекономить вам 2 команди ціною використання однієї. Ви також можете зробити щось на зразок, "xxxxxx"h коли останній символ - це нерозривний пробіл, який очищає все, крім TOS, і ви можете використовувати довжину рядка для генерації числа. Можливо, використовуйте щось інше, ніж xвсе-таки, тому що тоді у вас є, Wxщо дає вам 53, поки ви можете отримати 35 іншого шляху.
maxb

Крім того, я щойно додав char/ordоператора, який працює як 'A$-> 67, а також працює для більш довгих рядків (на зразок базових цілих чисел). Це не дуже добре задокументовано, але якщо ви зацікавлені в покращенні цієї відповіді, я можу відтворити чат для MathGolf для будь-яких питань.
maxb

@maxb Я бачив ваш коментар, коли я хворів у ліжку, але зараз у мене є кілька разів, щоб покращити цю відповідь. Дякую за 88888]Σ. Не знав про ]. Щодо того "hhhhh"h , схоже, це не працює . : S
Кевін Круїссен

1
Я не знаю, чи можна її вставити прямо звідси, але код повинен закінчуватися NBSP, символом пробілу, що не порушує. Ця команда очищає все, крім верхньої частини стека. Я досить впевнений, що PPCG перетворює персонажа у звичайний простір тут у коментарях. Спробуйте це
maxb

Що стосується масивів, я визначаю їх рекурсивно в MathGolf, [запускаючи контекст масиву і ]закінчуючи його і загортаючи результати в масив. Потрібно, щоб верхній рівень поводився як нижчі рівні, ]загортання всього стека в масив здавалося гарною ідеєю.
maxb

6

Java 8, 11 12 13, 39 байт

У Java є лише 10 символів для цифр (0-9), і всі виклики та константи методів потребують періоду, тому я не впевнений, що я можу отримати понад 11 виходів

Очевидно, знаки, задані для цілих чисел за замовчуванням, коли застосовуються операції

+1 за допомогою @ OlivierGrégoire

i->-~i
2
3
4
5
6
7
8
9
'P'^'Z'
11
"::::::::::::"::length
0xD

Пояснення:

i->-~i

ціла лямбда, яка не приймає введення і повертає 1. Коли параметр не приймає введення, використовується значення за замовчуванням відповідно до вищезазначеного метапосту, яке для цілих чисел дорівнює 0

2
3
4
5
6
7
8
9

буквальні цілі числа

'P'^'Z'

XOR з двох символів для повернення 10

11

буквальне ціле число

":::::::::::"::length

лямбда-вираз, який повертає довжину рядка 12 символів

0xD

Шестидесятковий 13

TIO Посилання, якщо ви хочете підтвердити.


1
Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
Денніс

Щоб скоротити кількість байтів (-6 знаків), 2можна записати як 2і 10як 'P'^'Z'. Також це звільняє персонажів X+*та використовує P.
Олів'є Грегоар


Ця більш прихильна відповідь з вами не погоджується.
Олів’є Грегоар

Крім того, це вперше я бачу цю "вимогу" за рік на цьому веб-сайті, і ніхто ніколи не погоджувався ні з одним із моїх гольфів, коли використовуються такі лямбда.
Олів'є Грегоар

6

Гая , оцінка 25, 203 байти

§‼
..⌉+⌉
₵P~~
4
5
6
∂Ql
8
9
¶c
11
'¡ċ⌋u⌋
--⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻
7:,Σ
Ø!))))))))))))))
øøw<øøw<«øøw<«øøw<«øøw<«
⟩‘
₸ḣ₸K$₸ḣ₸/S₸₸/=$
]]]]]]]]]]]]]]]]]]]n
⇑’e
0(((((((((((((((((((((_
22
“B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B
3₈×
ℍḥḥ

Я вважаю це ідеальним балом, оскільки більше обмежених можливостей неможливо використовувати, враховуючи обмеження характеру.

Пояснення

1. §‼

§є космічним символом, примусовим до булевого, тому результат дорівнює 1.

2. ..⌉+⌉

.це ярлик для 0.5, так це ceil(0.5+ceil(0.5)).

3. ₵P~~

₵Pє pi, ~порозрядне заперечення. Подвійне побітове заперечення - це просто усічення.

4. 4

5. 5

6. 6

7. ∂Ql

∂Qце список, що містить назви днів тижня, lє довжиною.

8. 8

9. 9

10. ¶c

Кодова точка cрядкової стрічки .

11. 11

12. '¡ċ⌋u⌋

'¡  The string "¡"
ċ   Turn it into a list of code points: [161]
⌋   Minimum: 161
u⌋  Floored square root: 12

13. --⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻

-- це скорочення -1, - віднімання. Тож цього -1 - -1 - -1...достатньо разів, щоб зробити 13.

14. 7:,Σ

Натисніть 7, скопіюйте :, з’єднайте ,два 7 в список і підсумовуйте Σ.

15. Ø!))))))))))))))

Øє порожнім рядком, тому Ø!є 1. Приріст )1 14 разів.

16. øøw<øøw<«øøw<«øøw<«øøw<«

øø    Push two empty lists
w     Wrap one of them
<     [] < [[]]? (it is, so push 1)
øøw<  Do the same thing again to push another 1
«     Bitshift 1 left by 1
      Do that same thing again 3 more times to get 16

17. ⟩‘

Якщо закрити рядок, це зробить його числом в прямому значенні. знаходиться в байтовому значенні 17 на кодовій сторінці Gaia.

18. ₸ḣ₸K$₸ḣ₸/S₸₸/=$

₸     10
ḣ     doubled
₸     10
K     20 choose 10 (184756)
$     Digit list
₸ḣ₸/  20/10 (2)
S     Split the digit list at index 2 ([[1 8][4 7 5 6]])
₸₸/   10/10 (1)
=     Get the first element of that split ([1 8])
$     Join together and print 18

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 навпіл , і знову навпіл.


5

C, оцінка 13

Це лише купа цілих констант.

0==0
__LINE__
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
'o'/'.' 
2*2*2*2-2-2
strlen("strlenstrlens")
  1. 0==0оцінює до 1
  2. Припускає, що код знаходиться у рядку 2. __LINE__= 2
  3. Ціла константа
  4. Ціла константа
  5. Ціла константа
  6. Ціла константа
  7. Ціла константа
  8. Ціла константа
  9. Ціла константа
  10. 1+1+1...= 1*10= 10
  11. 'o'дорівнює 111, '.'являє собою недрукований ASCII 0x10. 111/10 = 11
  12. (2<<2)= 8, 8*2= 16, 16-2-2= 12
  13. довжина рядка "strlenstrlens"= 13

5

Ом , оцінка 21 22, 160 всього байт

╓S@Ri
ΓΓ-Γ-Γ-
αê⌠
¡¡¡¡¼
5
▀lll▀l
ÑÑÑÑÑÑÑÿWÿk
ü`½½
9
..≥°
$$J
3dd
7ƒ
2≡≡≡Σ
║F
4º
0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~
6DD++
8π
τ╛hτ*
"≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A
1111 11v11%L1111 11v11%L

Спробуйте в Інтернеті!

Пояснення

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 символів нового рядка ( Ñ), а потім порожній рядок ( ÿ). Стек загортається в масив ( W), а потім знайдеться індекс порожнього рядка в цьому масиві.

8. ü`½½

üє космічним персонажем. `виштовхує своє значення ASCII (32), потім воно вдвічі зменшується ( ½½).

9. 9

Просто буквальне.

10. ..≥°

..носить буквальний .характер. Він збільшується ( ), який розбирає рядок як число, дефолт - до 0, оскільки це не є дійсним числом, і збільшується до 1. Потім обчислюємо 10 1 ( °).

11. $$J

$ виштовхує поточне значення регістра, спочатку 1. Отже, натисніть 1 двічі, з'єднайте стек разом і друкуйте.

12. 3dd

Натисніть 3 і двічі подвійне.

13.

Натискає на 7 число Фібоначчі.

14. 2≡≡≡Σ

Натисніть 2, збільшити в три рази три рази, залишаючи 7 2 на стеці. Потім візьміть суму стека ( Σ).

15. ║F

є роздільником для прямолінійних чисел базової 220. Оскільки це в кінці рядка, його не потрібно припиняти.

16.

Обчисліть 2 4 .

17. 0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~

òє побітовим запереченням, ~є арифметичним запереченням. Поєднавши ці оператори, ми можемо збільшити 0 17 разів.

18. 6DD++

Натисніть 6, повторіть його двічі та обчисліть 6 + 6 + 6.

19.

Натисніть 8-е просте число.

20. τ╛hτ*

Натисніть 10 ( τ), отримайте перший елемент ( h) його основних факторів ( ), помножте його на 10.

21. "≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A

Як і в попередніх фрагментах, рядок "≤"аналізується як 0. Ми її декрементуємо 21 раз, а потім приймаємо абсолютне значення.

22. 1111 11v11%L1111 11v11%L

Тут ми обчислюємо 1111 div 11 mod 11, що дорівнює 2, а потім друкуємо 2. Потім робимо це ще раз.


5

PowerShell, оцінка 12, 91 байт. 14, 176 байт

[byte]!![byte]                    # type gets cast to bool false, inverted, to int = 1
-   -$?-shl$?                   # -bool true is -1, shift left, negative. (Tab not space)
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
22/2                                           # use the 2
'uuuuuuuuuuuu'.LENGTH                          # string length
0xd
@{z=@{};Y=@{};YY=@{};w=@{};v=@{};U=@{};zz=@{};S=@{};r=@{};q=@{};p=@{};J=@{};K=@{};m=@{}}|% COU*             # count items in hashtable (space)

Редагувати:

  • Дякуємо Ørjan Johansen за те, що він запропонував шістнадцятковий 0xd для 13 та перестановку 5 для звільнення 1 + 1 + 1 + 1 .. як варіант.
  • Змінено довжину масиву на довжину рядка, [int] на [байт] і хештел, щоб використовувати хештелі як значення, звільняючи (),""Поміркування 15 з чимось на кшталт, "ZZZZZZZZZZZZZZZA".InDeXof("A")але не може використовувати крапку або "e" ..

PowerShell не може робити змінні без $, не може робити експоненцію, зміщення бітів, Pi, ceil () тощо з основними символами, і в основному вводить коерціан в / з bool і в / з числа-як-рядки, так Існує порівняно мало можливостей для генерування чисел із низьким синтаксисом.


Ви ще не використовували 0, тому 13 може бути 0xd. Ви можете поставити 5його в звичайне місце, звільнившись +для поєднання 1s. Це повинно отримати вас до 14. Якщо вам потрібно зберегти символи, клавіш хешшю може бути більше однієї літери. І якщо у вас є запасний спосіб отримати суму 1, ви можете зробити 10= 1e1.
Ørjan Johansen

@ ØrjanJohansen - гарні ідеї, дякую, відредагував мою відповідь з ними
TessellatingHeckler

Я знайшов інший спосіб зробити 2: ""-(""-(""-lt(""-""))-(""-lt(""-""))). Це звільняється від $?підбиття підсумків, і тоді ви можете зробити те, 1e1що я запропонував.
Ørjan Johansen

Гм, почекайте tзіткнення з обома версіями 1. (""-eq"")-(""-(""-eq""))здається кращим, qхештейл легко замінюється.
Ørjan Johansen

5

TI-Basic (83 серія), оцінка 21 22 23 24 25 (1003 байти)

1:  A=A
2:  int(tan(tan(cos(cos(cos(B
3:  tanh⁻¹(√(√(√(√(√(√(√(√(√(√(C!°√(√(C!°
        √(√(√(√(√(√(C!°√(√(√(√(√(√(C!°√(
        C!°√(√(√(C!°√(C!°√(C!°√(√(√(√(√(
        √(C!°√(C!°√(C!°√(C!°
4:  4
5:  cosh(sinh⁻¹(cosh(sinh⁻¹(...sinh⁻¹(cosh(D    with 25 repetitions of cosh(
6:  6
7:  7
8:  8
9:  9
10: ₁₀^(₁₀^(E
11: 11
12: F nPr F/sin(tan⁻¹(...(sin(tan⁻¹(F nPr F     with 143 repetitions of sin(tan⁻¹(
13: det([[G≤G]...[G≤G]]ᵀ[[G≤G]...[G≤G           with 26 repetitions of G≤G
14: ln(tanh(not(H))...tanh(not(H)))
        ln(tanh(not(H)))^⁻not(H                 with 14+1 repetitions of tanh(not(H))
15: iPart(e^(e^(e^(I
16: sum(dim(identity(sum(dim(identity(sum(
        dim(identity(sum(dim(identity(J≥J
17: K nCr K+K nCr K+...+K nCr K                 with 17 repetitions of K nCr K
18: abs(i-i-...-i                               with 20 repetitions of i
19: rand→L:log(LL...LL→M:log(L→N:N⁻¹M           with 19 L's inside the log
20: mean(seq(OOO,O,O,sinh(sinh(cos⁻¹(O
21: ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(³√(ππ³√(π³
        √(π³√(ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(
        π³√(³√(ππ³√(ππ
22: 22
23: 3(3(3×√(3(3(3×√(3(3×√(3(3(3×√(3×√(3×√(
        3(3×√(3(3×√(3(3(3×√(3(3×√(3×√(3(3(
        3×√(3(3×√(3×√(3×√(3(3(3×√(3(3×√(3(
        3(3×√(3×√(3(3(3×√3
24: Fix 0
    sin⁻¹(ᴇ0
    AnsAnsAnsAnsAnsAnsAns
25: 5*5

Перегляньте http://tibasicdev.wikidot.com/one-byte-tokens, щоб ознайомитись зі списком того, які дії тут виконуються, а що не дозволяє.

Усі ці програми можуть бути повноцінними програмами, оскільки останній рядок програми надрукується автоматично. Але (за винятком 17, що має кілька рядків), вони також можуть бути фрагментами на головному екрані.

На даний момент, я не бачу ніякого іншого шляху , щоб отримати якесь - або нульове значення з решти маркерів доступні. Якщо є якісь вдосконалення, доведеться спочатку зробити деякі рішення вище консервативними.

Пояснення

  • A=Aє булевим 1, оскільки змінна Aдорівнює самій собі.
  • Bза замовчуванням 0, tan(tan(cos(cos(cos(Bприблизно 2,21, і тоді ми беремо слово.
  • C!°становить 1 градус в радіанах, близько 0,017. Деяка позитивна сила цього - tanh (2), приблизно 0,964. Ми кодуємо цю потужність у двійковій формі, використовуючи неявне множення і √(, а потім беремо tanh⁻¹(.
  • 4 прямолінійний
  • cosh(sinh⁻¹(X1+X2
  • 6-9 - прямі
  • ₁₀^( є вбудованою однобайтовою потужністю 10, а 10 ^ 10 ^ 0 = 10 ^ 1 = 10.
  • 11 - це 11.
  • F nPr Fsin(tan⁻¹(X11+1/X2
  • G≤Gдорівнює 1, значить [[G≤G]...[G≤G]]стовпець 13x1. Беручи добуток свого транспозиту із собою, дається матриця [[13]], визначником якої є 13.
  • not(H)є 1. tanh(not(H))це просто деяке число, не рівне 0 або 1, і ln(XXX....X)ln(X)^⁻1спроститься до числа Xs у першому журналі, за умови, що Xце не 0 (щоб журнал існував), а не 1 (щоб ми не ділили по 0).
  • e^(e^(e^(F оцінюється приблизно до 15.15, а потім беремо слово.
  • J≥Jє 1. identity(будує матрицю ідентичності 1x1, dim(знаходить розміри її рядків і стовпців, і sum(додає їх для отримання 2. Потім робимо це ще раз, додаючи розміри матриці 2x2, щоб отримати 4, і знову, додаючи розміри матриці 4x4 щоб отримати 8, і знову, додавши розміри матриці 8x8, щоб отримати 16.
  • K nCr K є двочленним коефіцієнтом 0 виберіть 0, або 1. Якщо скласти разом 17 1, це 17.
  • i-i-...-iспрощується до ⁻18i, а прийняття 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.
  • Ще один екземпляр трюку, який використовується для отримання 3. Тут деяка сила πмає дати 21; ми кодуємо цю потужність у потрійному, маючи на увазі множення і ³√(.
  • 22 - 22.
  • Ще один екземпляр трюку, який використовується для отримання 3 і 21. Ми кодуємо потужність 3, що дорівнює 23, у трирічному, використовуючи 3×√(як корінь куба та (для множення.
  • Fix 0- це параметр для відображення 0 цифр після десяткових, округлення всіх значень до цілих чисел. sin⁻¹(ᴇ0оцінює на π / 2, а π / 2, помножене на себе 7 разів, дає приблизно 23,59, що округляє до 24.
  • 5*5є 25. (Це було б більш консервативно використовувати 5для отримання 5 і адаптувати рішення, яке використовується там для 25. Але цей спосіб економить багато місця, і *це не дуже корисний характер, оскільки існує припущенне множення.)

Xmax за замовчуванням - 10, те саме, що Ymax = 10, Ymin = Xmin = -10 та деякі інші значення за замовчуванням.
lirtosiast

@lirtosiast Все це два байти.
Міша Лавров

Я не впевнений у тлумаченні правил, але, думаю, ви все одно можете використовувати одне з них, не повторюючи жодних байтів (вважаючи символи байтами, а не лексемами)
lirtosiast

Я невпевнено скептично ставлюсь до цієї інтерпретації. У будь-якому випадку, рахуючи символи як байти, це повинно бути щось на зразок Xfact = 4, оскільки Xmax суперечить °. Ми, мабуть, зможемо отримати одну крапку з цього, іншу точку з 2-байтових команд і третю точку з команд лише TI-84.
Міша Лавров

4

SOGL , оцінка 16 18 20, 109 байт, 47 символів

=                    push ""=""
ρ:¾/U                ceil(isPalindrome("")/(isPalindrome("")*(3/4))) -> ceil(1/(3/4)) -> ceil(4/3)
3                    push 3
MM¼÷                 100/(100*1/4)
æ⁄                   length of "aeiou"
6                    push 6
7                    push 7
Nτ                   log2(256)
9                    push 9
L                    push 10
⁹’                   byte with the 11th SOGL code point
Ιζrkk"⁸              `⁸`s UTF-8 codepoint to string, take off 1st 2 chars
'⁰                   messy compression
īuHHHHHHHHHHHHHH±    floor(0.1) `-1` 14 times, then change sign
aIIIIIIIIIIIIIII     A `+1` 15 times, A = 0
4²                   4^2
lllllllllllllllll”l  length of "lllllllllllllllll"
222222222++++++++    2+2+2+2+2+2+2+2+2
δ“○“-                429-420
Μ℮‘                  compressed string of "2ŗ" where ŗ defaults to 0

4

Брахілог , 16 цілих чисел, 86 байт

1
2
3
4
5
6
7
8
9
ℕ<<<<<<<<<<
≜+₁₁
Ịbkkkkkkkị
Ḥl
ℤ₇×₂ṅ
"____**"pᶜ¹
⟦h>>>>>>>>>>>>>>>>ȧ

Спробуйте в Інтернеті! (Вхід керує програмою, яка запускається, від 1 до N)

Пояснення

                       The output is...

1                      1
2                      2
3                      3
4                      4
5                      5
6                      6
7                      7
8                      8
9                      9
ℕ<<<<<<<<<<            Strictly bigger than ... strictly bigger than 0
≜+₁₁                   0 + 11
Ịbkkkkkkkị             "12" converted to an integer
Ḥl                     The length of "Hello, World!"
ℤ₇×₂ṅ                  -(-7 × 2)
"____**"pᶜ¹            The number of unique permutations of "____**"
⟦h>>>>>>>>>>>>>>>>ȧ    The absolute value of stricly less than ... stricly less than 0

1
Подумайте лише про Prolog: 1, оскільки вам завжди потрібна крапка в кінці.
фальшивий

4

Желе , оцінка 22, 177 байт

1: Ṇ  : logical NOT. When there is no input, 0 is assumed, so this returns NOT(0)=1
2: ~A~A  : ~ is bitwise NOT and A is absolute value, implicit 0 input
         : 0~ = -1;   0~A = 1;   0~A~ = -2;  0~A~A = 2.
3: 3  : literal 3
4: -ı-²²×-Ḟ:
   -ı-     : literal complex number -1-1j
   ²²×-    : square (2j), then square(-4), then multiply by (×) negative 1 (-) to get 4+0i
   Ḟ       : get the real component, which is 4
5: 5  : literal 5
6: 6  : literal 6
7: 7  : literal 7
8: 8  : literal 8
9: ØDṪ : tail(Ṫ) of list of digits (ØD) to return 9
10: ⁵  : literal 10
11: 11 : literal 11
12: CNCNCNCNCNCNCNCNCNCNCNC : again, 0 is taken as input because there is no input
                            : C is complement and N is negate
                            : so each NC returns 1-(-n)=n+1 and is equivalent to increment, returning 12
13: “>>>>>»L    : encodes "#GlomAbducens" with “>>>>>» then returns the length in characters (13) with L
14: ‘‘‘‘‘‘‘‘‘‘‘‘‘‘   : default input is 0 again, and each ‘ increments it to get 14
15: Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;ỊS : default input is 0 again.
                                   : each Ị returns abs(0)<1 = 1
                                   : these are concatenated together with ; then summed with S to get 15
16: ⁴  : builtin literal 16
17: ,,,,,,,,,,,,,,,,,ŒḂŒḊ : Each , is the pair dyad: x,y = [x,y] and x,[y,z] = [x,[y,z]]. 
                          : Thus each , increased the depth by 1, then ŒḊ returns the depth: 17
18: 9Ḥ : 9 doubled = 18
19: E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E : each E returns areallelementsidentical([0]) = 1
                                          : 19 of these are summed with +
20: 44440b44ạ/ : 44440 base 44 = [22,42,0].
               : ạ/ takes the absolute difference of terms: ||22-42|-0| = 20
21: ”TOHH : ”T is the character literal "T". OHH returns its ascii value 84 (O) halved twice (HH) = 21
22: literal 22

Спробуйте все відразу або Спробуйте по черзі (аргумент - який вихід потрібно).

Невикористані символи:

¡¢£¤¥¦©¬®µ½¿€ÆÇÐÑÞßæçðȷñ÷øœþ !"#$%&'()*.:<=?@BFGIJKMPQRUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}¶°¹³⁶⁷⁸⁹⁺⁻⁼⁽⁾ƁƇƊƑƓƘⱮƝƤƬƲȤɓƈɗƒɠɦƙɱɲƥʠɼʂƭʋȥẠḄḌẸḲḶṂỌṚṢṬỤṾẈỴẒȦĊĖḞĠḢİĿṀṄȮṖṘṠẆẊẎŻḅḍẹḥịḳḷṃṇọṛṣṭụṿẉỵẓȧḃċḋėḟġḣŀṁṅȯṗṙṡṫẇẋẏż«’

Ви використовуєте Aдля 2 і 4 , ні?
Денніс

@Dennis Мій посилання на TIO було правильним, але моє пояснення було іншим. Виправлено
fireflame241

1
Я бачу. Btw, якщо ви помістите 22¹£€Yв основне посилання, ви можете виконати всі фрагменти одразу. tio.run/##y0rNyan8///hzjauOsc6Ry5jLt0jG3UPbTq0icuUy4zLnMuC6/…
Dennis

4

Ренг, оцінка 40, 149 байт

Спробуйте тут!

1.  e
2.  2
3.  ::l
4.  4
5.  5
6.  i`i`i`i`i`i`+++++
7.  7
8.  8
9.  9
10. A
11. ÇÇÇǹ
12. C
13* [[[[[[[[[[[[[mn~
14. E
15. F
16. G
17. H
18. I
19. J
20. K
21. L
22. M
23. N
24. O
25. P
26. Q
27. R
28. S
29. T
30. U
31. V
32. W
33. X
34. Y
35. Z
36. 6²
37. "%"
38* &fæ¦
39. D3*
40. 11±$1±±±±±±±±$11±$1±±±±$±$

Усі великі літери - це цифри, тому це приємно. Усі, крім двох, це фрагменти. Два програми:

13. [[[[[[[[[[[[[mn~
38. &fæ¦

Надане посилання дозволяє бачити стек під час роботи. Пояснення напишу пізніше.


4

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|

Лише зауважте, ви можете зробити 21 U)))))))))))))))))))))та 22, 22що буде безкоштовно 1для подальшого фрагмента.
Ділова кішка

@BusinessCat Спасибі, відредаговано.
Esolanging Fruit

Для перетворення pi в ціле число ви можете скористатися тим, що базове перетворення робить неявним :iу списку цифр (наприклад, [P]1bдає 3).
Мартін Ендер

Якщо ви не заперечуєте, щоб зробити 23 набагато довше, ви можете використовувати ''замість цього, ';а потім використовувати достатньо, (щоб обернутись до цифр (тобто близько 65 к (на кожну цифру). Це звільнило б ;щось інше, але я не впевнений, наскільки це корисно.
Мартін Ендер

@MartinEnder Я зроблю це, якщо я бачу, як використовувати ;, але наразі не можу.
Esolanging Fruit

4

Haskell , оцінка 13, 86 байт

pi/pi
sum[sum[]^sum[],sum[]^sum[]]
3
4
5
6
7
8
9
length"eeeeeeeeee"
11
2+2+2+2+2+2
0xD

Спробуйте в Інтернеті!

Дякуємо Ørjan Johansen за те, що він знайшов спосіб виправити моє письмове перекриття, зберігаючи бал тринадцять. (Також для того, щоб вийти зі свого шляху, щоб повідомити мене про це, поки цю відповідь було видалено.)

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.


У вас є лист, що перекривається.
xnor

@xnor Дякуємо, що вказали. Слід виправити зараз.
Лайконі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.