Виведіть ту ж довжину, що і код


97

У цьому виклику ви повинні написати програму або функцію, яка не займає введення та друкує або повертає рядок з такою ж кількістю байтів, що і сама програма. Є кілька правил:

  • Ви можете виводити лише байти в діапазоні ASCII для друку (0x20 до 0x7E включно) або нових рядках (0x0A або 0x0D).
  • Ваш код не повинен бути ланцюжком, тому код і вихід повинні відрізнятися принаймні в одному байті.
  • Ваш код повинен бути принаймні одним байтом.
  • Якщо ваш вихід містить нові рядки, вони є частиною кількості байтів.
  • Якщо ваш код вимагає нестандартних прапорів командного рядка, рахуйте їх як зазвичай (тобто додаючи різницю до стандартного виклику реалізації вашої мови до числа байтів), а довжина виводу повинна відповідати оцінці вашого рішення. Наприклад, якщо у вашій програмі є abі потрібен нестандартний прапор -n(будемо вважати, що він не може поєднуватися зі стандартними прапорами, тож це 3 байти), вам слід вивести 5 байт.
  • Вихідні дані не завжди повинні бути однаковими, якщо ви можете показати, що кожен можливий вихід відповідає вищезазначеним вимогам.
  • Звичайні правила квоти не застосовуються. Ви можете прочитати вихідний код або його розмір, але я сумніваюся, що це буде коротше, ніж жорстке кодування в більшості мов.

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

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

Це , тому найкоротший вірний відповідь - вимірюється в байтах - виграє.

Таблиця лідерів



18
«Ваш код не повинен бути Куїн» , але ... але ... це позначено Куайн
Okx

4
@Okx Оскільки це узагальнена квінка, тобто необхідний вихід залежить від вихідного коду.
Мартін Ендер

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

2
Вихід @WheatWizard за кодом виходу не є рядком, тому він не застосовується тут.
Мартін Ендер

Відповіді:


204

C (сучасний Linux), 19 байт

main(){puts('s');}

Під час компіляції та запуску друкується:

Segmentation fault

20
Це геніально: D
бета-розпад

4
це більше схоже на "C + англійська мова unix / posix OS;)"
Флоріан Кастеллан

5
Я думаю, що було б краще написати "C, сучасний Linux", ніж просто "C": У Windows повідомлення про помилку відрізняється, і в старі часи програми Linux навіть складалися таким чином, щоб адреса 0x73 ('s') була читабельна тому не було винятків.
Мартін Розенау

9
Я приєднався до сайту просто для підтвердження цієї відповіді.
Нітіш

7
Настільки ж вражаюче, що насправді програма C не друкує вихід, але оболонка, в яку вона працює.
Денніс

80

Excel, 11 байт

Версія норвезької мови:

=SMÅ(13^9)

Англійська мова (12 байт):

=LOWER(17^9)

Створює n-розрядне число і перетворює текст, перетворюючи на малі регістри.


106
Це дає абсолютно новий сенс "підбору потрібної мови для роботи".
Мартін Ендер

4
Це чудова ідея. Це буде коротше, =9^7&""що генерує семизначне число на будь-якій мові і становить лише 7 байт.
OpiesDad

@OpiesDad Гарне рішення, я думаю, ви повинні опублікувати це як відповідь, тому я можу підтримати позицію.
pajonk

4
@MartinEnder Мене дивує, як ваші міркування / потенційний жарт більш прихильний, ніж ця відповідь (хоча це вже й близько).
HyperNeutrino

55

Лабіринт , 4 байти

!!>@

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

Друкує 0000

Пояснення

!   Print an implicit 0 from the stack.
!   Print an implicit 0 from the stack.
>   Rotate the source code right by one cell, so the code now becomes

    @!!>

    The IP is moved along, so it's now at the end of the line, which is 
    a dead end. So the IP turns around and starts moving left.
!   Print an implicit 0 from the stack.
!   Print an implicit 0 from the stack.
@   Terminate the program.

6
Це занадто розумно. Майте +1, на домі!
caird coinheringaahing


40

Сітківка , 2 байти

no

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

Відбитки 0та лінійка.

2-байтних рішень дуже багато, але я вважаю, що це оптимально. Сітківка за замовчуванням завжди друкує зворотний новий рядок і позбавлення від нього займає занадто багато байтів. Отже, нам доведеться знайти 1-байтну програму, яка залишає порожній вхід незмінним. Я вважаю, що єдиною програмою, яка робить це, є програма, що містить єдину передачу рядків, яка, таким чином, дорівнює результату і, отже, заборонена викликом.

Наступна найпростіша річ - це жити, коли Retina виводить одну цифру (кількість збігів деякого регулярного вираження проти порожнього вводу), і ми можемо це зробити з великою кількістю невдалих (або відповідних) 2-байтних шаблонів.


27
+1 Щодо коду, який говорить мені не запускати його: P
Крістофер

33

Математика, 2 байти

4!

факторіальний

24


1
Гах! занадто розумний.
тускіоми

2
бийте мене до цього! +1. ( Я думаю, ви повинні згадати, що це є у версії REPL щодо Mathematica.)
Грег Мартін

Якщо це розумна відповідь, чи не відповідь "1" також буде розумною відповіддю? (Якщо поставити "1" у REPL Mathematica, повернеться також "1" ...)
Марк Сегал

3
@MarkSegal Це би порушило правило no-quine.
AlexR

6
Правила: ... "... код і вихід повинні відрізнятися хоча б на один байт"
J42161217

29

C, 20 байт

f(){printf("%20d");}

Виводить деяке число, прокладене пробілами довжиною до 20. (Яке число? Що станеться, що наступне в пам'яті.)

Деякі зразки працюють у моїй системі:

llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           -666605944
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
          -1391039592
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           1727404696
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
             10717352
llama@llama:...code/c/ppcg121056samelen$ ./a.out 
           1485936232

Прикро, що вихід не може бути довільним байтом, тому що це дозволило б це 19-байтне рішення:

f(){write(1,f,19);}

який видає 19 байт небажаної fпошти , починаючи з адреси.


Я радий бачити відповідь, яка використовує правило різного виводу. :)
Мартін Ендер

Не вдалося це сегментувати?
Даніель

Де посилання TIO?
CalculatorFeline

@Daniel Ні, кількість надрукованих надходить з попереднього вмісту %esiреєстру.
Дверна ручка

8
@Doorknob, але це все-таки невизначена поведінка, тому більш садистський упорядник може зробити щось зовсім інше
Sarge Borsch,

29

Bash на Linux, 6

uname

(далі новий рядок)

Вихідні дані Linuxсупроводжуються новим рядком.


2
Технічно unameце не вбудований баш - це окремий виконуваний файл
Джейсон Масгроув


@GammaFunction Де ви бачите, unameяк баш вбудований? Кожен дистрибутив, на який я можу покласти свої руки, зараз - це окремий двійковий файл, включаючи TIO . І навпаки, як показує ваша відповідна відповідь, umaskє вбудованим у більшість / усі оболонки.
Цифрова травма

Я не бачу unameвбудованого. Коли я сказав "-1, а насправді вбудований", я мав на увазі "Ця відповідь використовується umaskдля -1 байтів, і umaskнасправді є вбудованим".
GammaFunction

@GammaFunction Вибачте - я неправильно зрозумів значення "-1" у вашому коментарі - я звик до тих сенсів, що означають голоси та коментарі, що пояснюють, чому.
Цифрова травма

27

Javascript ES6, 9 байт

Використання рядків шаблонів

_=>`${_}`

f=

_=>`${_}`

console.log(f());
console.log(typeof f());


Чи undefinedвважається струною?
Кудлатий

3
@Shaggy Дивіться правку. Я використовую
рядкову

Ого, це мій другий пост щодо PPCG та 14 оновлень! Спасибі
Weedoze

1
Чому проста сироватка у вас може бути складною? (_=>_+'').
GOTO 0

1
@ GOTO0 О добре, ти зберігаєш дужки. Це ще один варіант. Я особисто віддаю перевагу mine hehe
Weedoze

24

Схема піраміди , 74 43 42 байт

Збережено 31 байт завдяки Khuldraeseth na'Barya! Збережено 1 байт завдяки переробленому рішенням JoKing!

  ^
 /^\
^---^
-^ ^-
 -^-
 /2\
/ 8 \
-----

Спробуйте в Інтернеті! Виводить 41-розрядне число з 28^28 = 33145523113253374862572728253364605812736наступним наступним рядком.


Стара версія

  ^
 / \
/out\
-----^
    /^\
   ^---^
  /1\ /9\
 /606\---
/51015\
-------

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

Виходи 71277303925397560663333806233294794013421332605135474842607729452115234375= 160651015 ** 9, або приблизно 10 74 .


6
Гей, ти намагаєшся продати свою мову? Якщо так, то ви заарештовані. - Копи
NoOneIsHere

2
@NoOneIsHere пробачте?
Conor O'Brien

3
Вибачте, це називається Схема піраміди, яка також є назвою типу афери.
NoOneIsHere

1
ohhhhhhhhhhh rofl
Conor O'Brien

1
Неявний вихід знижує вас до 43 байт .
Khuldraeseth na'Barya


23

Python 2 , 9 байт

print 1e5

Виведений вихід містить зворотний новий рядок.

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


Чи враховуються останні символи нових рядків як символів на віддачу? В іншому випадку це друкує вісім байтів.
OldBunny2800

@ OldBunny2800 Так, виклик говорить, якщо ваш висновок містить зворотні нові рядки, вони є частиною підрахунку байтів . У всякому разі, я уточню, що у своїй відповіді
Луїс Мендо

18

мозковий ебать , 25 байт

--[-->+<]+++++[->-.....<]

Спробуйте в Інтернеті! Примітка. Потрібна реалізація з 8-бітовими непідписаними осередками

Вихід:

~~~~~}}}}}|||||{{{{{zzzzz

Пояснення

--[         254
 -->+<]      /2 = 127 into the second cell
+++++[      Five times
 ->-.....<]  Print the second cell - 1 five times

4
Існує багато варіантів BF, як 8-бітова комірка, нескінченна стрічка. або обмеженою стрічкою та нескінченними клітинками. Я впевнений, що ваша 8-бітова модель клітинки без підпису, але я думаю, що було б добре, якщо ви включите це у свою відповідь.
Роман Ґраф

@ RomanGräf Добрий момент! Я зазвичай включаю цю інформацію, якщо потрібна нестандартна реалізація. Ця відповідь має працювати на будь-якій стандартній реалізації (8-бітні безпідписані комірки, будь-яка стрічка), але я додам примітку для уточнення.
Зак К.

Чи не може у вас бути 1-байтна програма, .яка друкує недрукувальний NULLсимвол?
Гравітон

@ Гравітон Це би порушило перше правило цього виклику. Однак це правильне рішення у похідній BF, яка за замовчуванням відповідає друкованому значенню (див.: Моя відповідь мозкової розвідки ).
Зак К.


16

C (Ideone), 14 байт

f(){warn(0);}

Для Ideone , який називає його виконуваним prog, це виводить наступне з останнім рядком.

prog: Success

C (GCC), 15 байт

f(){warn(00);}

Оскільки GCC пише виконавчий файл, названий a.outза замовчуванням (за відсутності додаткових прапорів, які коштували б байтів), це виводить наступне із заднім рядком.

a.out: Success

7
@MDXF Специфікація говорить про програму чи функцію, тому подання функції є абсолютно дійсним. Оскільки ім'я файлу тут не обрано користувачем (і Ideone, і gcc мають за замовчуванням), я думаю, це нормально (особиста думка).
Денніс

15

C (gcc) , 18 17 байт

f(){puts('@C');}

Зауважте, що між і тамає байт STX ( 0x02 ) .@C

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

Переносність

Це було перевірено на gcc 6.3.1 та clang 3.9.1 на Fedora 25, gcc 4.8.4 на Ubuntu 14.04.4 та gcc 4.8.3 на openSUSE 13.2, де він друкує наступний вихід.

inux-x86-64.so.2

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

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2

На різних платформах потрібна інша адреса пам'яті та, можливо, інший порядок для байтів у константах символів багато символів.

Наприклад, заміна @\2Cз @\2\4відбитками exec/ld-elf.so.1і перекладом рядки на FreeBSD 11 з брязкотом 3.8.0.

Перевірка в режимі офлайн

$ printf "%b\n" "f(){puts('@\2C');}main(){f();}" > quine.c
$ gcc -w -o quine quine.c
$ ./quine
inux-x86-64.so.2
$ ./quine | wc -c
17

Як це працює

За замовчуванням ld використовує 0x400000 як основну адресу текстового сегмента, це означає, що ми можемо знайти вміст ELF, починаючи з адреси пам'яті 0x400000 .

Перші 640 байт ELF значною мірою не залежать від фактичного вихідного коду. Наприклад, якщо після декларації f дотримується main(){f();}і нічого іншого, вони виглядають так.

00000000: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  .ELF............
00000010: 02 00 3e 00 01 00 00 00 00 04 40 00 00 00 00 00  ..>.......@.....
00000020: 40 00 00 00 00 00 00 00 e8 19 00 00 00 00 00 00  @...............
00000030: 00 00 00 00 40 00 38 00 09 00 40 00 1e 00 1b 00  ....@.8...@.....
00000040: 06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00  ........@.......
00000050: 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00  @.@.....@.@.....
00000060: f8 01 00 00 00 00 00 00 f8 01 00 00 00 00 00 00  ................
00000070: 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00  ................
00000080: 38 02 00 00 00 00 00 00 38 02 40 00 00 00 00 00  8.......8.@.....
00000090: 38 02 40 00 00 00 00 00 1c 00 00 00 00 00 00 00  8.@.............
000000a0: 1c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
000000b0: 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00  ................
000000c0: 00 00 40 00 00 00 00 00 00 00 40 00 00 00 00 00  ..@.......@.....
000000d0: 04 07 00 00 00 00 00 00 04 07 00 00 00 00 00 00  ................
000000e0: 00 00 20 00 00 00 00 00 01 00 00 00 06 00 00 00  .. .............
000000f0: 08 0e 00 00 00 00 00 00 08 0e 60 00 00 00 00 00  ..........`.....
00000100: 08 0e 60 00 00 00 00 00 1c 02 00 00 00 00 00 00  ..`.............
00000110: 20 02 00 00 00 00 00 00 00 00 20 00 00 00 00 00   ......... .....
00000120: 02 00 00 00 06 00 00 00 20 0e 00 00 00 00 00 00  ........ .......
00000130: 20 0e 60 00 00 00 00 00 20 0e 60 00 00 00 00 00   .`..... .`.....
00000140: d0 01 00 00 00 00 00 00 d0 01 00 00 00 00 00 00  ................
00000150: 08 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00  ................
00000160: 54 02 00 00 00 00 00 00 54 02 40 00 00 00 00 00  T.......T.@.....
00000170: 54 02 40 00 00 00 00 00 44 00 00 00 00 00 00 00  T.@.....D.......
00000180: 44 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00  D...............
00000190: 50 e5 74 64 04 00 00 00 b0 05 00 00 00 00 00 00  P.td............
000001a0: b0 05 40 00 00 00 00 00 b0 05 40 00 00 00 00 00  ..@.......@.....
000001b0: 3c 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00  <.......<.......
000001c0: 04 00 00 00 00 00 00 00 51 e5 74 64 06 00 00 00  ........Q.td....
000001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000001f0: 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00  ................
00000200: 52 e5 74 64 04 00 00 00 08 0e 00 00 00 00 00 00  R.td............
00000210: 08 0e 60 00 00 00 00 00 08 0e 60 00 00 00 00 00  ..`.......`.....
00000220: f8 01 00 00 00 00 00 00 f8 01 00 00 00 00 00 00  ................
00000230: 01 00 00 00 00 00 00 00 2f 6c 69 62 36 34 2f 6c  ......../lib64/l
00000240: 64 2d 6c 69 6e 75 78 2d 78 38 36 2d 36 34 2e 73  d-linux-x86-64.s
00000250: 6f 2e 32 00 04 00 00 00 10 00 00 00 01 00 00 00  o.2.............
00000260: 47 4e 55 00 00 00 00 00 02 00 00 00 06 00 00 00  GNU.............
00000270: 20 00 00 00 04 00 00 00 14 00 00 00 03 00 00 00   ...............

Використовуючи, наприклад, main(int c, char**v){f();}замість цього змінює деякі байти, але не зміщення рядка /lib64/ld-linux-x86-64.so.2, яке ми використовуватимемо для отримання виводу.

Зсув згаданого рядка дорівнює 0x238, він становить 27 байт. Ми хочемо лише надрукувати 17 байт (і останній буде новим рядком , якщо ми використовуємо puts), тому ми додамо 11 до зміщення, щоб отримати 0x243 , зміщення inux-x86-64.so.2. Додавання 0x400000 та 0x243 дає 0x400243 , місце в пам'яті inux-x86-64.so.2.

Для отримання цієї адреси пам'яті ми можемо використовувати багатосимвольні константи символів, які демонструють поведінку, визначену реалізацією. 0x400243 - це (64) (2) (67) в базовій 256, а багатосимвольні константи символів gcc використовують порядок байтів великих розмірів, тому отримує '@\2C'адресу пам'яті потрібного рядка.

Нарешті, putsдрукується (нульове закінчення) жало в цьому місці пам'яті та кінцевій новій лінії, створюючи 17 байт виводу.


Це майстерність ... це передбачає порядок байт складеної збірки чи щось таке?
Патрік Робертс

Вихід на мою систему (Linux з GCC 6.3.1): Uпри компіляції з -Df=main. Uпри складанні с main(){f();}.
MD XF

@PatrickRoberts На даний момент я не дуже впевнений, які припущення. Оскільки він замикається у зібраному файлі ELF, він значною мірою залежить від усього, що пише компілятор перед фактичним кодом.
Денніс

@MDXF Знайшов коротший спосіб отримати відповідну адресу пам'яті. Зараз він працює на моєму Ubuntu 14.04 VPS, але ymmv.
Денніс

@Dennis зараз добре працює (бовтайте). Баунті - це ваше, якщо до кінця тижня ніхто не знайде коротшого рішення.
MD XF

13

Модифікуючий Brainfuck , 5 байт

<[.<]

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

Вихід:

]<.[<

Пояснення:

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

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


13

Основний арифметичний калькулятор , 2 байти

1=

відбитки 1., або:

    |
    |
    |  .

на цих дурних семисегментних дисплеях.

Для відтворення підберіть будь-який випадковий калькулятор; всі вони якось встановлені на цій мові програмування.


1
Чи правда це для всіх калькуляторів? Я впевнений, що вони постійно показують десяткову точку
Beta Decay

Чи не 1.замість цього 1x? Також це квола, яку заборонено правилами.
Ерік Аутгольфер

Ні, так 1=, я заплутався. Я мав на увазі, 1xніж неявні рівні, але я забув, що =це кнопка.
OldBunny2800

Він видає лише 1мої TI-36 та TI-84 CE. Чи не вважаються ці "основними" калькуляторами?
Бенджамін Уркхарт

Ні, TI 84 - це не арифметичний калькулятор, це графічний калькулятор. Я не знаю про 36, але я впевнений, що це науковий калькулятор. Ця відповідь стосується чотирифункціональних калькуляторів.
OldBunny2800

13

Фур’є, 26 22 20 байт

5^(`na`&i)` Batman!`

Спробуйте це на FourIDE!

Виходи:

nananananana Batman!

Для правильної великої літери це 4 додаткові байти:

`N`7^(`an`i^~i)`a Batman!`

Спробуйте це на FourIDE!

Nanananananananana Batman!

RIP Адам Вест


1
Вам не доведеться включати NC (лише якщо ви зробили строковий друк для цього виклику (і це було б нерозумно)
Крістофер

@Christopher Ху, я цього не знав
бета-розпад

12

Брахілог , 1 байт

w

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

Пояснення

wє вбудованим "записом". Тут він напише Input. Оскільки введення є вільною змінною, wперед друком буде позначати її цілим числом. Перше ціле число, яке воно намагається, це 0.


Here, it will write the Input.Це "Вхід" сама програма? Чи не вважається це читанням джерела, яке за замовчуванням обманюється у лайки?
MD XF

4
@MDXF "Звичайні правила квоти не застосовуються"
Роб Уоттс

3
@MDXF Input - це спеціальна змінна Brachylog, яку можна встановити, викликаючи програму Brachylog. Він переходить до вхідної частини TryItOnline. Тут ми нічого не встановлюємо для Input, тому це фактично є змінною. Це не програма.
Фаталізувати

10

Java (OpenJDK 8) , 11 байт

o->1e8-1+""

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

Вихід:

9.9999999E7

Тільки трохи складніший , ніж очевидна відповідь, ()->"".format("%23s",0).

Економить

  • 18 -> 16 байт: вигідніше поєднання округлення та потужності 10, завдяки PunPun1000
  • 16 -> 13 байт: краща формула, завдяки JollyJoker
  • 13 -> 11 байт: поліпшена формула, завдяки Кевіну Крейссену

2
()->1E10-1+"", "9.999999999E9" (13)економить ще три байти
JollyJoker

1
Ви можете зберегти 1 байт, змінивши 1e10на 1e92 байти, використовуючи порожній ввід замість() цього: o->1e8-1+""(виходи 9.9999999E7; довжина та кількість байтів 11 ).
Kevin Cruijssen

9

05AB1E , 1 байт

õ

Виводить один новий рядок. õвисуває порожній рядок, і він неявно виводиться новим рядком.

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

Деякі інші 2-байтні рішення для вашого задоволення від перегляду (вихід у дужках, а весь вихід має зворотний новий рядок):

X, (1)
Y, (2)
¾, (0)
¼, (1)
¶, (newline)
ð, (space)
Î, (0)

Однак є ще два байтові рішення.


"який є прийнятим методом виводу" лише для функціональних рішень, а не для повних програм.
Мартін Ендер

@MartinEnder Тоді ці рішення будуть вважатися функціями? Не дуже впевнений, оскільки тут я часто не використовую функції.
Okx

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

9

V / vim, 1 байт

o

Це друкує один новий рядок.

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

На цьому є купа варіантів, які теж спрацювали. Наприклад,

O

in vim, і

Ä
ä
ï
Ï

в В.

Також існує багато багато-багато трибайтових рішень. Наприклад:

3ii
i³i
¬ac

Усі вони характерні для В.


3ii не розгортається, поки ви не натиснете клавішу Escape, так чи повинно бути три-чотири байти (чи швидше натискання клавіш)?
алгмір

@algmyr In vim, ти прав. Це повинно бути, 4ii<ESC>однак V неявно заповнює вихід у кінці програми.
DJMcMayhem

8

Пакет, 12 байт

@echo %OS%

Кількість байтів включає в себе наступний новий рядок і для сценарію, і для виводу, що є

Windows_NT

Здається, що це 11 байтів, а не 12.
Ерік Аутгольфер

@EriktheOutgolfer cmd.exe, звичайно, відлучить CRLF після Windows_NT, таким чином, 12 байт.
Ніл

Тоді вам слід уточнити?
Ерік Аутгольфер




7

MATL , 2 байти

H

Існує зворотний новий рядок.

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

Пояснення

Буфер обміну H містить номер 2за замовчуванням. Hвиштовхує цей вміст до стеку, який неявно відображається із зворотним новим рядком.



7

Желе , 1 байт

V

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

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

Насправді, із 256 байтів на сторінці коду є лише 95, які в даний час не створюють іншого байтового виводу у вказаному діапазоні при запуску як повноцінна програма; це (як символи кодової сторінки в порядку байтів):

¡¢£¦©½¿€ÇÑÞßçıȷñ÷þ"#&',-./0123456789:;?@IMRTVZ\`dmpstxyz{}~°³⁴⁵⁹ƓƈɠḶỌṬḊĖİĿṄȮṖṘẆẊṃọṣṭḃḟḣŀṁṗṡẋż’“

Примітки:

  • Більшість 1-байтових програм друкують a 0(без операцій / отримання списку з одним нулем у, який друкує a 0), більшість інших друкує a 1( 0=0тощо)

  • це одна програма , яка робить вихід інший байт, але той , який виходить за допустимі згідно зі специфікацією - вона виробляє нуль-байт (кидає 0до характеру)

  • створює пробіл (буквальний)

  • створює стрічковий канал (буквальний)

  • Деякі байти, які зараз працюють, можуть не робити це в майбутньому - існує досить мало байтів, зарезервованих (я вважаю) для ніладичних значень, які при призначенні практично не збираються виробляти однобайтовий вихід.


1
Мертве посилання дляbyte
Weedoze

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