(Inspirado por los 95 personajes de ASCII ... 95 citas de películas )
El reto
Dada entrada n
, salida el nth
número de Fibonacci . Puede usar cualquiera 0
o 1
indexación, indique cuál en su envío. Simple, si? El problema es que debe tomar el conjunto de caracteres de la respuesta anterior inmediata, eliminar dos caracteres y agregar un carácter separado. El personaje separado debe
- no ser del conjunto de caracteres de la respuesta anterior inmediata
- ser del conjunto de (ASCII imprimible, espacio, nueva línea, pestaña horizontal)
y, por lo tanto, el tamaño total de su conjunto de caracteres será exactamente uno más pequeño que el conjunto de respuestas anteriores inmediatas.
La respuesta inicial
El primer envío debe contener un subconjunto de (todo ASCII imprimible, espacio, nueva línea y pestaña horizontal) con dos caracteres eliminados. Cada envío posterior debe restringir sus respuestas a este formato original ASCII (lo que significa que no puede agregar un carácter Unicode o ASCII extendido ... lo siento, Jelly, APL, et al.).
Ejemplos y aclaraciones
- Suponga que la primera respuesta está en C y contiene (casi todos los ASCII imprimibles, nueva línea y tabulación horizontal), y omite el
%
y^
de su conjunto de caracteres. La segunda presentación, entonces, debe eliminar dos caracteres del conjunto de caracteres anterior (casi todos imprimibles ASCII, nueva línea y pestaña horizontal) y agregar el%
o^
. Quizás es una respuesta de PowerShell de una sola línea que omite la nueva línea. Y así. - Si la respuesta anterior tenía
print(){}!*+
como conjunto de caracteres (12 caracteres), su envío podría tenerprint(){}!
(10 caracteres) y un carácter adicional,print(){!+
(10 caracteres) y un carácter adicional, etc. - Si la respuesta anterior tenía
print(){}!*+
como conjunto de caracteres (12 caracteres), su envío no podría tenerprint()
y&
(8 caracteres) como su conjunto de caracteres, desde entonces12 - 8 > 1
. - Si la respuesta anterior tenía
print(){}!*+
como conjunto de caracteres (12 caracteres), su envío no podría tenerprint(){}!
(10 caracteres) más caracteres adicionales*
como su conjunto de caracteres, ya que a pesar de que son 11 caracteres,*
se incluye en el conjunto anterior. - No todos los caracteres en su conjunto de caracteres deben hacer algo útil para su presentación. Por ejemplo, si la respuesta anterior tenía
print(){}!*+
como conjunto de caracteres, y su idioma tiene una función incorporada!
que calcula la secuencia de Fibonacci y#
que inicia un comentario, su envío podría ser!#print(){}
y seguir siendo válido. - Puedes usar el mismo personaje de tu conjunto de personajes varias veces. Por ejemplo, supongamos que su conjunto de caracteres era
!*#_
, su respuesta podría ser!!!**#**#_!!
y sería aceptable. - Además de su código (¡y una explicación también es agradable!), También enumere explícitamente su conjunto de caracteres, para que sea más fácil enviarlo en el futuro.
Victorioso
El ganador del desafío será la persona que publicó la segunda presentación más reciente (es decir, no la persona que publicó la última, ya que rompieron la cadena).
Reglas finales
Se aplican las reglas habituales de encadenamiento de respuestas :
- La misma persona no puede publicar dos veces seguidas
- Si una respuesta se considera inválida (por ejemplo, usó un carácter prohibido o no se calcula correctamente), debe eliminarse (y cualquier respuesta posterior que también se encadene)
- Dos usuarios que publiquen "al mismo tiempo" deberán dejar que la presentación anterior permanezca
- No se puede publicar el mismo idioma dos veces seguidas. A los fines de esta regla, los idiomas de la misma familia (por ejemplo, Python 2 y Python 3) cuentan como "el mismo idioma".
Cosas finales
- Esta publicación funciona mejor si ordena por "Más antiguo" para que las respuestas estén en el orden correcto.
- Kyle Gullion construyó un verificador de código en Python aquí para verificar si falta o usa caracteres incorrectos.