Напишите две программы так, чтобы, когда байты их исходного кода были XOR-d вместе, они создавали третью действительную программу на одном языке. Длина каждой из трех программ в байтах должна быть одинаковой.
Первая программа должна вывести A
. Вторая программа должна выводить B
. Третья программа должна выводить C
.
Новая строка необязательна, но если один выводит новую строку, то и другие тоже должны.
Если вы используете какие-либо флаги командной строки, вы должны использовать одинаковые флаги для каждой программы, то есть все три программы должны выполняться одинаково. Если вы используете такой язык, как PHP, который традиционно начинается с той же комбинации символов, например, <?
но есть опция командной строки, которая удаляет эти символы, вы можете использовать ее вместо этого, то есть PHP должен запускаться только из командной строки.
Вход не разрешен. Каждая программа должна быть автономной.
Если ваша программа полностью написана на ASCII, вам могут помочь следующие таблицы:
Codes 0x20 - 0x3F
!"#$%&'()*+,-./
0123456789:;<=>?
Codes 0x40 - 0x5F
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
Codes 0x60 - 0x7E
`abcdefghijklmno
pqrstuvwxyz{|}~
РЕДАКТИРОВАТЬ
Использование непечатных символов разрешено, поскольку я не запрещал это изначально. Однако, если вы хотите опубликовать версию, которая также использует только печатные символы, это было бы здорово! (Оценка в зависимости от того, какая из них самая короткая.) «Умный фактор» использования контрольных кодов несколько устарел ...
КОНЕЦ РЕДАКТИРОВАНИЯ
Выполнение XOR любых двух кодов из одного и того же блока приведет к получению кода менее 0x20, который, следовательно, не является допустимым печатаемым кодом ASCII, например, 0x41 ( A
) XOR 0x5A ( Z
) = 0x1B. Выполнение XOR любых двух кодов из разных блоков приведет к получению кода из третьего блока, например, 0x61 ( a
) XOR 0x54 ( T
) = 0x35 ( 5
).
| @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo 0Pp 1Qq 2Rr 3Ss 4Tt 5Uu 6Vv 7Ww 8Xx 9Yy :Zz ;[{ <\| =]} >^~ ?_
--- + --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
@` | @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo 0Pp 1Qq 2Rr 3Ss 4Tt 5Uu 6Vv 7Ww 8Xx 9Yy :Zz ;[{ <\| =]} >^~ ?_
!Aa | !Aa @` #Cc "Bb %Ee $Dd 'Gg &Ff )Ii (Hh +Kk *Jj -Mm ,Ll /Oo .Nn 1Qq 0Pp 3Ss 2Rr 5Uu 4Tt 7Ww 6Vv 9Yy 8Xx ;[{ :Zz =]} <\| ?_ >^~
"Bb | "Bb #Cc @` !Aa &Ff 'Gg $Dd %Ee *Jj +Kk (Hh )Ii .Nn /Oo ,Ll -Mm 2Rr 3Ss 0Pp 1Qq 6Vv 7Ww 4Tt 5Uu :Zz ;[{ 8Xx 9Yy >^~ ?_ <\| =]}
#Cc | #Cc "Bb !Aa @` 'Gg &Ff %Ee $Dd +Kk *Jj )Ii (Hh /Oo .Nn -Mm ,Ll 3Ss 2Rr 1Qq 0Pp 7Ww 6Vv 5Uu 4Tt ;[{ :Zz 9Yy 8Xx ?_ >^~ =]} <\|
$Dd | $Dd %Ee &Ff 'Gg @` !Aa "Bb #Cc ,Ll -Mm .Nn /Oo (Hh )Ii *Jj +Kk 4Tt 5Uu 6Vv 7Ww 0Pp 1Qq 2Rr 3Ss <\| =]} >^~ ?_ 8Xx 9Yy :Zz ;[{
%Ee | %Ee $Dd 'Gg &Ff !Aa @` #Cc "Bb -Mm ,Ll /Oo .Nn )Ii (Hh +Kk *Jj 5Uu 4Tt 7Ww 6Vv 1Qq 0Pp 3Ss 2Rr =]} <\| ?_ >^~ 9Yy 8Xx ;[{ :Zz
&Ff | &Ff 'Gg $Dd %Ee "Bb #Cc @` !Aa .Nn /Oo ,Ll -Mm *Jj +Kk (Hh )Ii 6Vv 7Ww 4Tt 5Uu 2Rr 3Ss 0Pp 1Qq >^~ ?_ <\| =]} :Zz ;[{ 8Xx 9Yy
'Gg | 'Gg &Ff %Ee $Dd #Cc "Bb !Aa @` /Oo .Nn -Mm ,Ll +Kk *Jj )Ii (Hh 7Ww 6Vv 5Uu 4Tt 3Ss 2Rr 1Qq 0Pp ?_ >^~ =]} <\| ;[{ :Zz 9Yy 8Xx
(Hh | (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg 8Xx 9Yy :Zz ;[{ <\| =]} >^~ ?_ 0Pp 1Qq 2Rr 3Ss 4Tt 5Uu 6Vv 7Ww
)Ii | )Ii (Hh +Kk *Jj -Mm ,Ll /Oo .Nn !Aa @` #Cc "Bb %Ee $Dd 'Gg &Ff 9Yy 8Xx ;[{ :Zz =]} <\| ?_ >^~ 1Qq 0Pp 3Ss 2Rr 5Uu 4Tt 7Ww 6Vv
*Jj | *Jj +Kk (Hh )Ii .Nn /Oo ,Ll -Mm "Bb #Cc @` !Aa &Ff 'Gg $Dd %Ee :Zz ;[{ 8Xx 9Yy >^~ ?_ <\| =]} 2Rr 3Ss 0Pp 1Qq 6Vv 7Ww 4Tt 5Uu
+Kk | +Kk *Jj )Ii (Hh /Oo .Nn -Mm ,Ll #Cc "Bb !Aa @` 'Gg &Ff %Ee $Dd ;[{ :Zz 9Yy 8Xx ?_ >^~ =]} <\| 3Ss 2Rr 1Qq 0Pp 7Ww 6Vv 5Uu 4Tt
,Ll | ,Ll -Mm .Nn /Oo (Hh )Ii *Jj +Kk $Dd %Ee &Ff 'Gg @` !Aa "Bb #Cc <\| =]} >^~ ?_ 8Xx 9Yy :Zz ;[{ 4Tt 5Uu 6Vv 7Ww 0Pp 1Qq 2Rr 3Ss
-Mm | -Mm ,Ll /Oo .Nn )Ii (Hh +Kk *Jj %Ee $Dd 'Gg &Ff !Aa @` #Cc "Bb =]} <\| ?_ >^~ 9Yy 8Xx ;[{ :Zz 5Uu 4Tt 7Ww 6Vv 1Qq 0Pp 3Ss 2Rr
.Nn | .Nn /Oo ,Ll -Mm *Jj +Kk (Hh )Ii &Ff 'Gg $Dd %Ee "Bb #Cc @` !Aa >^~ ?_ <\| =]} :Zz ;[{ 8Xx 9Yy 6Vv 7Ww 4Tt 5Uu 2Rr 3Ss 0Pp 1Qq
/Oo | /Oo .Nn -Mm ,Ll +Kk *Jj )Ii (Hh 'Gg &Ff %Ee $Dd #Cc "Bb !Aa @` ?_ >^~ =]} <\| ;[{ :Zz 9Yy 8Xx 7Ww 6Vv 5Uu 4Tt 3Ss 2Rr 1Qq 0Pp
0Pp | 0Pp 1Qq 2Rr 3Ss 4Tt 5Uu 6Vv 7Ww 8Xx 9Yy :Zz ;[{ <\| =]} >^~ ?_ @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo
1Qq | 1Qq 0Pp 3Ss 2Rr 5Uu 4Tt 7Ww 6Vv 9Yy 8Xx ;[{ :Zz =]} <\| ?_ >^~ !Aa @` #Cc "Bb %Ee $Dd 'Gg &Ff )Ii (Hh +Kk *Jj -Mm ,Ll /Oo .Nn
2Rr | 2Rr 3Ss 0Pp 1Qq 6Vv 7Ww 4Tt 5Uu :Zz ;[{ 8Xx 9Yy >^~ ?_ <\| =]} "Bb #Cc @` !Aa &Ff 'Gg $Dd %Ee *Jj +Kk (Hh )Ii .Nn /Oo ,Ll -Mm
3Ss | 3Ss 2Rr 1Qq 0Pp 7Ww 6Vv 5Uu 4Tt ;[{ :Zz 9Yy 8Xx ?_ >^~ =]} <\| #Cc "Bb !Aa @` 'Gg &Ff %Ee $Dd +Kk *Jj )Ii (Hh /Oo .Nn -Mm ,Ll
4Tt | 4Tt 5Uu 6Vv 7Ww 0Pp 1Qq 2Rr 3Ss <\| =]} >^~ ?_ 8Xx 9Yy :Zz ;[{ $Dd %Ee &Ff 'Gg @` !Aa "Bb #Cc ,Ll -Mm .Nn /Oo (Hh )Ii *Jj +Kk
5Uu | 5Uu 4Tt 7Ww 6Vv 1Qq 0Pp 3Ss 2Rr =]} <\| ?_ >^~ 9Yy 8Xx ;[{ :Zz %Ee $Dd 'Gg &Ff !Aa @` #Cc "Bb -Mm ,Ll /Oo .Nn )Ii (Hh +Kk *Jj
6Vv | 6Vv 7Ww 4Tt 5Uu 2Rr 3Ss 0Pp 1Qq >^~ ?_ <\| =]} :Zz ;[{ 8Xx 9Yy &Ff 'Gg $Dd %Ee "Bb #Cc @` !Aa .Nn /Oo ,Ll -Mm *Jj +Kk (Hh )Ii
7Ww | 7Ww 6Vv 5Uu 4Tt 3Ss 2Rr 1Qq 0Pp ?_ >^~ =]} <\| ;[{ :Zz 9Yy 8Xx 'Gg &Ff %Ee $Dd #Cc "Bb !Aa @` /Oo .Nn -Mm ,Ll +Kk *Jj )Ii (Hh
8Xx | 8Xx 9Yy :Zz ;[{ <\| =]} >^~ ?_ 0Pp 1Qq 2Rr 3Ss 4Tt 5Uu 6Vv 7Ww (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg
9Yy | 9Yy 8Xx ;[{ :Zz =]} <\| ?_ >^~ 1Qq 0Pp 3Ss 2Rr 5Uu 4Tt 7Ww 6Vv )Ii (Hh +Kk *Jj -Mm ,Ll /Oo .Nn !Aa @` #Cc "Bb %Ee $Dd 'Gg &Ff
:Zz | :Zz ;[{ 8Xx 9Yy >^~ ?_ <\| =]} 2Rr 3Ss 0Pp 1Qq 6Vv 7Ww 4Tt 5Uu *Jj +Kk (Hh )Ii .Nn /Oo ,Ll -Mm "Bb #Cc @` !Aa &Ff 'Gg $Dd %Ee
;[{ | ;[{ :Zz 9Yy 8Xx ?_ >^~ =]} <\| 3Ss 2Rr 1Qq 0Pp 7Ww 6Vv 5Uu 4Tt +Kk *Jj )Ii (Hh /Oo .Nn -Mm ,Ll #Cc "Bb !Aa @` 'Gg &Ff %Ee $Dd
<\| | <\| =]} >^~ ?_ 8Xx 9Yy :Zz ;[{ 4Tt 5Uu 6Vv 7Ww 0Pp 1Qq 2Rr 3Ss ,Ll -Mm .Nn /Oo (Hh )Ii *Jj +Kk $Dd %Ee &Ff 'Gg @` !Aa "Bb #Cc
=]} | =]} <\| ?_ >^~ 9Yy 8Xx ;[{ :Zz 5Uu 4Tt 7Ww 6Vv 1Qq 0Pp 3Ss 2Rr -Mm ,Ll /Oo .Nn )Ii (Hh +Kk *Jj %Ee $Dd 'Gg &Ff !Aa @` #Cc "Bb
>^~ | >^~ ?_ <\| =]} :Zz ;[{ 8Xx 9Yy 6Vv 7Ww 4Tt 5Uu 2Rr 3Ss 0Pp 1Qq .Nn /Oo ,Ll -Mm *Jj +Kk (Hh )Ii &Ff 'Gg $Dd %Ee "Bb #Cc @` !Aa
?_ | ?_ >^~ =]} <\| ;[{ :Zz 9Yy 8Xx 7Ww 6Vv 5Uu 4Tt 3Ss 2Rr 1Qq 0Pp /Oo .Nn -Mm ,Ll +Kk *Jj )Ii (Hh 'Gg &Ff %Ee $Dd #Cc "Bb !Aa @`
Найдите два символа из разных столбцов и выберите символ из их пересечения, который находится в другом столбце, например, B
и e
: "Bb
XOR %Ee
is 'Gg
. B
это второй столбец , и e
это третий столбец так выбрать символ из первого столбца в 'Gg
: '
.
Пример источника:
Ld+|?dpHs'-,pUe (Program 1)
~bWn=n5Xe!t_G($3 (Program 2)
^.3EAQQ(-RSrkXqV (Program 3)
Обратите внимание, что в каждом столбце может быть только одна цифра, одна заглавная буква и одна строчная буква. Для каждого столбца вы можете использовать любой символ, который вам нравится в первой программе, затем вы можете выбрать 64 символа во второй программе, но только один возможный символ в третьей программе. 0x7F нигде не действует.
Если вы используете Unicode, вы должны проверить XOR-код, и вы должны сказать, как он кодируется, например, UTF-8, UTF-16 и т. Д. Каждый файл должен использовать одну и ту же кодировку.
Оценка: длина одной программы. Побеждают самые маленькие байты!
источник
PHP, 15 + 1 байт
Этот был
легкоДЕЙСТВИТЕЛЬНО сложнее, чем ожидалось, но весело!К сожалению, это третье переписывание из-за неправильных ответов.
На этот раз он предназначен для запуска в консоли (с использованием параметра
-r
).Программа А:
Программа Б:
Результат XORing:
Шестнадцатеричный дамп:
PHP будет бросать предупреждения о имея
\0
и\3
символы перед эхом, но это игнорируемая.Это просто предупреждения!
Он все еще работает и выдает правильный ответ!
Попробуйте запустить это в своей консоли:
Если вы не можете, попробуйте один из них:
Если вы все еще не можете, запустите код самостоятельно:
Старый код, недействительный:
Программа А:
Программа Б:
Результат XORing:
источник
\x00
в своей консоли, но заменяю их\x03
работами, и\x00
внутри самого PHP на моем сервере все еще работает, поэтому я предполагаю, что ваш ответ действителен сейчас! Мне также пришлось использовать флаг для подавления всех ошибок:php -d error_reporting=0 -r "^C^C^C^C^C^CeCHO C;^C"
выходыC
. Перенаправление stderr (2>
под Windows) не подавляло все ошибки из вывода.\3
, что показывает клуб сердец. Но вы хотите, чтобы я добавил-d
флаг на счет?\x03
в сердце! Windows ♥ PHP!@
удалось подавить все ошибки!Пип, 4 байта
Поскольку user23013 использует непечатаемый ASCII в GolfScript, я решил, что мог бы сделать то же самое в Pip . Это требует перенаправления
stderr
, но это нормально , верно?A
где два
?
с представляют символ ASCII 0.В
С
где два
?
s представляют символы ASCII 0 и 3 соответственно.Поместите каждую программу в файл (
A.pip
например). В Linux выполните:В Windows:
Если вывод ошибок вербен, вот 5-байтовое решение в печатном ASCII:
источник
Microscript , 8 байт каждый
A:
'APhgap)
B:
'BPh@" A
C:
<0><3><0><0>'CPh
источник
<0><3><0><0>...
?Python,
191514 байтa.py
b.py
c.py
Я пришел к этому решению, когда заметил, что python (2.7.6 в Ubuntu 14.04), увидев символ NUL, будет игнорировать оставшуюся часть этой строки.
Сокращенный на 1 байт, как только я понял, что пространство после печати не нужно. И укоротил еще на 4 байта, как только я понял, что символ NUL также заставляет игнорировать символ новой строки, чтобы я мог использовать его для разбиения строк в середине ключевого слова.
источник
Чип , 8 байт
Все требуют флаг
-w
.Программа А
(
.
нулевой символ\x00
)Программа Б
(
.
нулевой символ\x00
)Программа С
И A, и B выдают три предупреждения каждое (например:)
1:6 WARN: '' (0) is not a valid character
, но их можно безопасно игнорировать, поскольку они переходят в stderr. Элементы^
иM
действительны, но здесь ничего не делают.Я вполне уверен, что это лучшее, что можно сделать с разрешением не для печати. Я не уверен, что это доказательство завершено, но здесь идет:
Требует
a
,g
,t
и каким - то образом активировать эти элементы ( не менее двух символов, необходимых для этого, и*
это самый простой вариант здесь). Аналогичным образом ,В требует
b
,g
,t
, и два*
с, иС требует
a
,b
,g
,t
, и два*
с.Если C заимствует свои символы непосредственно из A и B, то две буквы и две
*
s остаются невостребованными. (В моей реализации Аt
и Бg
). Эти четыре элемента могут перекрываться, так что они искажены в C (производя^
иM
в этом случае). Теперь у нас есть эти два искалеченных элемента плюс шесть обязательных элементов сверху (C требует 6, остальные только 5, но нам нужно max () здесь), всего 8 элементов.Чип (без предупреждения), 10 байт
Все требуют флаги
-wo
.Программа А
(есть пробел)
Программа Б
Программа С
Это лучшее, что мы можем сделать в ASCII для печати следующим образом: три программы, вместе взятые, требуют всего 2
a
с, 2b
с, 3g
с и 3t
с. Поскольку ни один из этих символов не может перейти на другой, нам нужны2+2+3+3 = 10
отдельные позиции.источник