Codegolf - Дополнительный Квайн

  • Автор темы 7finik
  • Обновлено
  • 20, Oct 2024
  • #1

Напишите квайн, который выводит дополнение исходного кода от наименьшей степени, содержащей двойку. Вот пример:

 
  

Самая большая кодовая точка в строке IN : R¡Ṡ OUT: ᾮὟƠ is the letter 128 - 117 = 11 , что равно 117. Наименьшая содержащая степень 2 будет равна 128, поэтому все кодовые точки берутся как дополнения от 128.

  1. с: 128 - 111 = 17 . Code point 13 is a carriage return.
  2. о: 128 - 115 = 13 . Code point 17 is "device control 1"
  3. ты: u . Code point 11 is a vertical tab.

И так далее. Вот еще один пример:

"source"

Самая большая кодовая точка — это символ IN : source OUT: \r\x11\x0b\x0e\x1d\x1b , which is 7776. The smallest containing power of 2 is 2^13 (8192), so each character is complemented from 8192.

Применяются все стандартные лазейки. Программа должна состоять из некоторых явных данных или кода. Переменная, содержащая некоторые данные, по умолчанию будет считаться неявными данными и, следовательно, недопустима.

Если ваш язык неизбежно выводит завершающую новую строку, ее можно игнорировать.

#код-гольф #куайн

7finik


Рег
17 Apr, 2007

Тем
65

Постов
171

Баллов
496
  • 26, Oct 2024
  • #2

Нейм, 1 байт

 
 
 
 
 
 
 
 
 s='s=%r;print"".join(chr(128-ord(i))for i in s%%s)';print"".join(chr(128-ord(i))for i in s%s)
 

Попробуйте онлайн!

Использует Neim's кодовая страница, где f=a=>[...a='f='+f].map(a=>(m=(a=a.charCodeAt())>m?a:m,a),m=0).map(a=>String.fromCharCode(2**-~(Math.log2(m)|0)-a)).join`` is byte 0xd0 (208) и распечатанный результат, char*u,*s="char*u,*s=%c%s%c;main(){char t[256];sprintf(t,s,34,s,34);for(u=t;*u;++u)*u=128-*u;puts(t);}";main(){char t[256];sprintf(t,s,34,s,34);for(u=t;*u;++u)*u=128-*u;puts(t);} , is byte 0x30 (48) что соответствует требованиям (256-208).

«` .S{c$256\-o}r. « # Push a function based on the remainder of the program and run it. ` . # Append a space to the end, which stringifies it. As the stringification removes unnecessary spaces, this re-adds the leading one, making it a valid quine. S # Convert it to a stack of characters. { }r # Replace each character based on a function. c # Get the character code $256 # Push 256 literally. \- # Flip them and subtract, giving 255 - char code, which is equivalent to the bitwise not of the char code. o # Get the character this represents. . # Reduce with Concatenation, turning it back into a string. Implicitely output. is an instruction to get the nth element of a list. Both n and the list are implicit since they are missing and neim outputs implicitly too.

 

Niko983


Рег
11 Apr, 2012

Тем
67

Постов
206

Баллов
581
  • 26, Oct 2024
  • #3

сетчатка, 2 1 байт

\x

Выходы

U àÒ\x85\x9DÜÎËʤÓ\x91\x83\x8EÒà

Объяснено

«` .S{c$256\-o}r. actually has no special meaning in retina, but retina treats it like a regex against the input, and counts the matches. As there's no input, there's no matches, so it returns 0 , что является полной противоположностью этому.

Попробуйте онлайн!

Здесь используется более старая версия Retina, которая выводит новую строку с нулем. В последней версии этого нет.

 

Txp4


Рег
22 Feb, 2005

Тем
72

Постов
207

Баллов
597
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно