(Вдохновлено 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 здесь , чтобы проверить , если вы пропустили или используя неправильные символы.