(Вдохновлено 95 персонажами ASCII ... 95 цитат из фильмов )
Соревнование
Учитывая данные n
, выведите число nth
Фибоначчи . Вы можете использовать любой 0
или 1
индексирование, пожалуйста , укажите , какой в вашем представлении. Просто, да? Уловка в том, что вы должны взять набор символов предыдущего предыдущего ответа, удалить из него два символа и добавить отдельный символ. Отдельный персонаж должен
- не из набора символов непосредственного предыдущего ответа
- быть из набора (для печати ASCII, пробел, перевод строки, горизонтальная вкладка)
и, таким образом, ваш общий размер набора символов будет ровно на один меньше, чем у набора предыдущего немедленного ответа.
Первоначальный ответ
Первая отправка должна содержать подмножество (все печатные ASCII, пробел, перевод строки и горизонтальная табуляция) с удалением двух символов. Каждая последующая заявка должна ограничивать свои ответы этим оригинальным ASCII-форматом (то есть вы не можете добавить Unicode или расширенный ASCII-символ ... извините, Jelly, APL и др.).
Примеры и разъяснения
- Предположим, что первый ответ написан на языке C и содержит (почти все печатные символы ASCII, символ новой строки и горизонтальная табуляция), и в нем отсутствует набор символов
%
and^
. Во втором представлении необходимо удалить два символа из предыдущего набора символов (почти все для печати в формате ASCII, символ новой строки и горизонтальная табуляция) и добавить либо либо,%
либо^
. Возможно, это однострочный ответ PowerShell, в котором пропущена новая строка. И так далее. - Если предыдущий ответ имел в
print(){}!*+
качестве своего набора символов (12 символов), ваше представление может иметьprint(){}!
(10 символов) и один дополнительный символprint(){!+
(10 символов) и один дополнительный символ и т. Д. - Если предыдущий ответ имел в
print(){}!*+
качестве своего набора символов (12 символов), ваше представление не может иметьprint()
и&
(8 символов) в качестве своего набора символов, так как12 - 8 > 1
. - Если предыдущий ответ был
print(){}!*+
как набор символов (12 символов), ваша заявка может не иметьprint(){}!
(10 символов) плюс дополнительный символ*
как набор символов, так как несмотря на то, что это 11 символов, то*
включается в предыдущем наборе. - Не каждый персонаж в вашем наборе символов должен делать что-то полезное для вашего представления. Например, если предыдущий ответ имел в
print(){}!*+
качестве своего набора символов, а ваш язык имеет встроенную функцию,!
которая вычисляет последовательность Фибоначчи и#
запускает комментарий, ваша отправка может быть!#print(){}
и остается действительной. - Вы можете использовать один и тот же символ из вашего набора символов несколько раз. Например, предположим, что ваш набор символов был
!*#_
, ваш ответ может быть!!!**#**#_!!
и будет приемлемым. - В дополнение к вашему коду (и объяснение это тоже приятно!), Пожалуйста, также явно перечислите свой набор символов, чтобы облегчить последующие представления.
выигрыш
Победителем конкурса станет тот, кто разместил вторую самую последнюю заявку (т. Е. Не тот, кто разместил последнюю, поскольку они разорвали цепочку).
Окончательные правила
Обычные правила цепочки ответов применяются:
- Один и тот же человек не может оставлять сообщения дважды
- Если ответ считается недействительным (например, он использовал запрещенный символ или неправильно рассчитывает), его необходимо удалить (и любые последующие ответы, которые также связаны с ним)
- Два пользователя, которые публикуют «одновременно», должны оставить прежнюю заявку
- Один и тот же язык не может быть опубликован дважды подряд. Для целей этого правила языки одного и того же семейства (например, Python 2 и Python 3) считаются «одним языком».
Заключительные вещи:
- Этот пост работает лучше всего, если вы сортируете по «Старейшим», чтобы ответы были в правильном порядке.
- Кайл Gullion построил код проверки в Python здесь , чтобы проверить , если вы пропустили или используя неправильные символы.
Ответы:
1. С
Содержит нет
{
или}
.Попробуйте онлайн!
Я надеюсь, что сделал это правильно.
источник
{
или}
вы можете добавить другой.{
или}
, то вы можете добавить другой и ответ Brain-Flak.*
. Разрешено ли нам опускать символы из нашего набора символов и по-прежнему их «включать», или это был недосмотр?2?1*1
это исправит.2. Mathematica
Не содержит
}
,Z
или вкладок по горизонтали. (Включено{
.)Две первые строки - просто комментарий; последняя строка - встроенная функция, использующая индексирование Only True Super Cosmically Ordained, где входы 0 и 1 дают выходы 0 и 1 соответственно (я не знаю, называть ли это 0-индексированным или 1-индексированным).
источник
8. Октава
Добавлены
U
и удалены+
и-
. Решение не содержит+-`01AEI
символов табуляции или табуляции.На основе матрицы Фибоначчи .
источник
t
хотя ...\t
способ печати символа табуляции в Python (который я использовал для проверки своего ответа), я отредактирую, чтобы сделать его более понятным.33, MATL
Добавлено
-
, удалено()
. Решение не содержит!&'()/\01?AEIKLMNPSTWZ`dmwz{}|~
, табуляции, пробела или новой строки.Попробуйте это на MATL Online
Исправлена ошибка:
0
,1
и\
случайно были оставлены в комментарии (после%
) в конце. Их удаление не нарушает функционал. Переместил этот ответ с 32 на 33 в попытке сохранить его в силе. Если это нужно удалить, пожалуйста, дайте мне знать, и я сделаю это.источник
36. Ява
Добавлен
\
. Удаленыqx
. Не использует!&'()/1?AEIKLMNPSTWZ`dmnqtwxz{}|~[]
табуляцию или пробел.Я знаю, что, вероятно, мог бы подождать дольше, но я хотел убедиться, что вытащу это, пока не стало слишком поздно. Этот класс не только определяет функцию, которая принимает целое число
n
и возвращает это число Фибоначчи, но также печатает первые 20 для вас просто для удовольствия. Я попытался проявить должную осмотрительность, написав это на простой старой java без хитрой игры в гольф, а затем убрал нелегальных персонажей 1 на 1, пока мы не добрались до существа, которое вы видите перед вами сейчас.Попробуйте онлайн!
источник
0
37. Питон 2
Прочитал
x
. Не использует!&'()/1?AEIMNPSTWZdmnqtwz{}|~[]
пробел, табуляцию или `. Удалены К и Л.С комментариями:
Этот подход использует общий термин ряда Фибоначчи.
источник
3. Мозговой Flak
Не содержит
Z
,~
,A
или вкладки по горизонтали. (Повторно включены}
)Попробуйте онлайн!
источник
5, Хаскелл
Удалено
AEIOU
и вкладка, добавленоZ
Попробуйте онлайн!
источник
12. Питон 3
Добавленный
:
удален{;
не содержит{};`01AEIPQx
или символ табуляции.источник
{;
, а не};
.6. Мозговой Flak
Попробуйте онлайн! Не использует
tabAEIU`_
и добавил обратноO
источник
26. Пролог (SWI)
Добавлен
%
. УдаленыNK
. Не использует&*01AEIKLMNPSTWZ`dmrwz{}]
табуляцию или перевод строки.Попробуйте онлайн!
источник
34. брейкфак
Добавлена новая строка, удалены
n
иt
. Не использует!&'()/\01?AEIKLMNPSTWZ`dmntwz{}|~
табуляцию или пробел. (может быть, мы можем получить несколько 2D-языков сейчас)0 индексированные. Вход / выход - байтовые значения.
Попробуйте онлайн!
источник
4, Python 2
Удалено
AEIZ
, вкладка добавлена~
Попробуйте онлайн!
источник
11. Стандартный ML (mosml)
Добавлен
+
. Удалены:}
. Не содержит:}0`1AEIPQx
символов табуляции или табуляции.SML не на TIO, и я использовал различные москвы мл, но есть онлайн SMLNJ переводчика здесь .
источник
10. C
Добавлено
m
, удаленоPQ
. Не содержит+`01AEIPQx
символов табуляции или табуляции.Флаг компилятора:
-lm
Попробуйте онлайн!
источник
.
все еще отсутствует в вашем комментарии.9. Питон 2
Добавил
-
, удалилm
иx
. Не содержит+`01AEImx
символов табуляции или табуляции.Рекурсивная функция Python! Добавляет все числа Фибоначчи назад до
n
1.источник
1
345678BCDFGHJKLMNOPQRSTUVWXYZ
18. Октава
Добавлены
;
и удаленыf
и пробел. Решение не содержит ни{}:`*%01AEIPQfrd
табуляции, ни новой строки, ни пробелов.Идентично ответить на 8 , только больше ненависти к SML: P
источник
23. Стандартный ML (mosml)
Там мы идем снова. Добавил
Q
, удалил}
и]
. Не использует%&*+01:AEILMPZ`dmrzM{}]
, вкладку или перевод строкиисточник
Q
вместо этого.25. CJam
Добавил
+
обратно, удалилS
иT
. Не использует%&*01AEILMPSTZ`dmrz{}]Ww
табуляцию или перевод строки.В основном это порт моего более старого ответа, но в этом используется некоторая хитрость, чтобы обойти отсутствие скобок.
0 индексированные.
Попробуйте онлайн!
источник
27. JavaScript
Добавил
*
, удалил"
и'
. Не использует"&'01AEIKLMNPSTZ`dmrz{}]Ww
табуляцию или перевод строки.источник
28. Хаскелл
Попробуйте онлайн! Использование:
g 3
дает2
.Добавил
"
, удалил<space>
и-
. Не использует&'-01AEIKLMNPSTZ`dmrz{}]Ww
или каких-либо белых spcae.источник
30. Стандарт ML
Добавил
:
, удалил+
и?
. Не содержит!&'+-01?AEIKLMNPSTWZ`dmrwz{}
ни одного пробела.Первая часть
fun$(a,b,x)n=if(length(x)=n)then(length(a))else$(b,a@b,()::x)n
определяет функцию,$
котораяn
итеративно вычисляет число Фибоначчи с использованием кодировки унарного списка. Длина аргументаx
указывает текущее число и,a
аb
также списки длиныfib(length(x)-1)
иfib(length(x))
. Еслиn
равно,length(x)
мы возвращаемсяlength(b)
, в противном случае рекурсивно добавляемa
иb
через конкатенацию и приращение спискаx
, добавляя элемент()
к нему.Вторая часть
("#%*./23456789<>BCDFGHJOQRUVXY\\^_cjkopqvy|~";$([],[()],[]))
представляет собой последовательность, в которой строка отбрасывается и$([],[()],[])
является инициализацией функции$
с помощьюa = 0
,b = 1
иx = 0
, в результате, получается анонимная функция, которая вычисляет n-е число Фибоначчи.источник
32, Python 3
Добавлено
r
и удалено|~
. Решение не содержит ни!&'/\-01?AEIKLMNPSTWZ`dmrwz{}|~
табуляции, ни новой строки, ни пробелов.источник
39. Питон 2
Добавлен
0
. Удалены@^
. Не использует!^&'()/1?@AEIMNPSTWZdmntwz{}|~[] `
табуляцию или перевод строки.Аргумент для exec без escape-последовательностей:
Попробуйте онлайн!
источник
38. Матл
Добавлен
q
. Удалены0 <newline>
. Не использует!&'()/1?AEIKLM0NPSTW{Z`dmntwxz}|~[]
табуляцию, перевод строки или пробел.Попробуйте онлайн
источник
q
x
, вы не удалили его, но он ограничен. Можете ли вы добавить х в конце комментария? Ограниченный список также говорит, что вы не используетеq
, поэтому вам нужно удалить это.7, Python 2
Повторно включен
_
. Удалены символы: табуляция иAEIU`
, и (только чтобы немного противно)0
и1
. В противном случае, просто копия ответа Wheat Wizard (отсюда и вики сообщества).Попробуйте онлайн!
источник
13. Стандартный ML (mosml)
Добавлен
x
. Удалены:r
. Не содержит:;{}0`1AEIPQr
символов табуляции или табуляции.После того, как мы в значительной степени исключили языки стиля C, давайте перейдем к Python. Этот ответ в значительной степени идентичен ответу 11.
источник
14. Октава
Добавлены
r
и удалены перевод строки и пробел. Решение не содержит ни{}:;`01AEIPQ
табуляции, ни новой строки, ни пробелов.На основании замкнутой формы формула (7) .
источник
16. Октава
Добавлены
/
и удалены * и пробел. Решение не содержит ни{}:;`*%01AEIPQ
табуляции, ни новой строки, ни пробелов.Идентично ответить на 14 , просто прямая атака на SML и Python: P
источник
15. Стандартный ML (mosml)
Добавлено пространство и удалено
%/
. Не содержит{}:;`01AEIPQ
табуляции или новой строки.источник