Связанный: Interquine
Программа A выводит код программы B при запуске, а B выводит источник C, а C выводит источник A.
На этот раз вы не можете обменять два символа и обменять снова :)
Требования:
- Только один язык во всех программах
- Стандартные ограничения лазейки применяются
- Все программы разные. Одна программа, которая выводит сама себя, не подходит. Два, которые выводят друг друга, тоже не подходят.
- Все программы не пусты или имеют длину не менее 1 байта.
- Нечего читать, потому что к нему подключен stdin
/dev/null
(вы можете злоупотребить этим правилом, если можете ). Вывод идет в стандартный вывод. - Не используйте функции, которые генерируют случайные результаты.
Дополнительно:
- Дайте объяснения, если это возможно
Оценка - это длина самой короткой (можете ли вы создать длинную программу из короткой?). Пожалуйста, напишите длину всех программ и выделите наименьшее число. Трейлинг новой строки не считается. Самый низкий балл побеждает .
Ответы:
Python 3 , 50 байт
Попробуйте онлайн!
Последнее выражение идет от
1*2%7
к2*2%7
до,4*2%7
затем к1*2%7
.источник
1-2/_
формирует 3-тактный цикл(1,-1,3)
, который сохраняет байт, не требуя экранирования%
.n
,s='s=%r;print(s%%(s,-~%i%%3))';print(s%(s,-~1%3))
заменив3
наn
RProgN 2 ,
128 байтРазъяснения
Из-за удобной природы того, как RProgN выводит данные по умолчанию, это оставляет число, которое повторяется между 1, 2 и 4, в первой строке и строковую версию функции во второй. Вдохновленный @LeakyNun «s Python Ответ
Попробуйте онлайн!
источник
CJam , 17 байт
Попробуйте онлайн!
Вероятно, не оптимально, но это модификация моего подхода к предыдущему вызову .
Основная идея та же, но мы выполняем два обмена, один из которых всегда запрещен. Затронутые индексы
2
,3
и6
:источник
CJam , 14 байтов
Попробуйте онлайн!
Другие программы имеют длину 26 и 38 байт соответственно.
объяснение
Еще один подход!
источник
Желе , 11 байт
Это сгенерировало ту же самую программу с заменой 1 на 2 , которая заменила 2 на 4 , что создает оригинальную программу.
Попробуйте онлайн!
источник
Python 3, 127, 127 и 127 байтов
печать
печать
Это основано на моем ответе на вопрос Interquine, который основан на обычной Python quine. И я точно знаю, что делать, когда мы получим четырехъядерный вопрос;)
источник
CJam , 14 байтов
Попробуйте онлайн!
объяснение
источник
Javascript (ES6),
6355 байтИспользование альтернативного решения
Function.prototype.toString
(чит, 30 байт)источник
Лямбда-исчисление , 38 символов, 44 байта
Простое решение, основанное на матери всех сущностей: y-комбинатор :
Используя бета-сокращения, мы видим, что это действительно триединство:
источник
Java 8, 118 байт
Только
int i=0;
разница между функциями / выходами (это либо0
,1
либо2
).Объяснение:
Попробуйте онлайн.
Дополнительное объяснение:
quine -part:
String s
содержит неформатированный исходный код%s
используется, чтобы поместить эту строку в себя сs.format(...)
%c
,%2$c
И34
используются для форматирования двойных кавычек ("
)%%
используется для форматирования по модулю (%
)s.format(s,...,34,s)
складывает все вместеРазница выходов / функций:
Тот же подход, что и у большинства других ответов:
int i
начинается либо0
,1
либо2
++i%3
преобразует это к следующему (0→1
;1→2
;2→0
)источник
> <> , 15 байт
Попробуйте онлайн!
Использует ту же общую форму, что и другие> <> кваи, но имеет дополнительный символ впереди, который циклически проходит через 1, 2 и 4.
источник