Mi jefe * no entiende por qué sus programadores reaccionan negativamente a los usuarios que cambian los requisitos del programa. Ayúdala a entender! En cada respuesta, cree un nuevo requisito. Luego, escriba un programa / función que resuelva ese requisito y todos los requisitos anteriores, mientras está en un nuevo lenguaje de programación.
Ejemplos
El usuario 1 publica la primera respuesta. Especifica que el programa debe generar "Hola, mundo". Él crea un programa en Java que genera "Hola, mundo".
El usuario 2 publica la segunda respuesta. Se especifica que el programa debe aceptar la entrada N y la salida del n º de primera, hasta el número máximo de idiomas. Ella crea un programa en C ++ que acepte la entrada de n y da salida a la N º primer y salidas "Hola, mundo". Ella no podría haber creado un programa en Java.
El usuario 3 publica la tercera respuesta. Él especifica que la fuente del programa no puede contener el texto "Hola". Se crea una función en Python que acepta la entrada de n y da salida a la N º primer y "Hola, mundo". mientras no usa el texto "Hola" en su fuente. No pudo haber creado un programa en Java o C ++.
Formato de respuesta
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Reglas de respuesta
La respuesta debe seguir el formato anterior o similar.
La respuesta puede ser un programa o una función.
La respuesta debe cumplir con todos los requisitos hasta la respuesta actual incluida.
El mismo usuario no puede publicar dos respuestas seguidas.
Si se publican dos respuestas con el mismo número, la que se publique más tarde debe eliminarse.
No edite su requisito a menos que haya cometido un error grave y no se hayan publicado otras respuestas.
Si su respuesta no cumple con su regla y todas las demás reglas, no es válida. Intenta arreglar esto antes de que alguien publique la siguiente respuesta.
Las diferentes versiones del mismo idioma solo cuentan como idiomas diferentes si el programa o la función creada en cualquiera de las versiones se comportará de manera diferente en la otra versión.
Es posible que la respuesta no acepte ninguna entrada no requerida, y puede que no genere nada no requerido, excepto los espacios en blanco necesarios. Sin embargo, mientras que el programa debe cumplir con todos los requisitos "ocultos" (del usuario), puede hacer cualquier otra cosa que desee, especialmente si debe cumplir con un requisito de tiempo de ejecución.
Reglas de requisitos
El requisito solo debe especificar un requisito. Este requisito puede ser condicional, y si este requiere una entrada y / o salida, esto puede incluirse.
El requisito no puede eliminar o modificar requisitos anteriores, o entrar en conflicto con ellos, pero puede extender uno (especifique cuál).
Si el requisito restringe la fuente (fuente restringida ), o requiere texto en la fuente, solo puede eliminar una sola cadena (por ejemplo
0
,Hello
), o requerir un solo carácter.El requisito no puede exigir que la fuente sea inferior a 100 bytes, requerir una codificación específica o, por sí misma, descartar la mayoría de los idiomas comunes.
Es posible que el requisito no obligue a la fuente a ajustarse a un determinado patrón (por ejemplo, comenzar cada línea con un determinado carácter o (@Conor) hashing a un cierto valor) distinto del especificado en la fuente restringida.
Esto es encadenamiento de respuestas , por lo que todas las respuestas se basan en respuestas anteriores. Tal vez yo y otros intentemos mantener una lista de todos los requisitos. Para ver las respuestas en orden, puede ordenar por más antiguas. Para ver la respuesta más nueva, ordene por la más antigua, luego navegue hasta el final de la lista.
Cómo ganar (modificado para votar en espera):
Cuando no se publica una respuesta durante dos semanas, el desafío termina y se calcularán los puntajes. Los puntajes se calcularán sumando el número total de respuestas de cada usuario, pero ponderando las publicaciones en función de qué tan lejos están en la cadena (dado que las publicaciones posteriores tienen más requisitos, son más difíciles).
Pseudocódigo:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Ejemplo:
Sally tiene tres respuestas. Publicó la respuesta 5, la respuesta 7 y la respuesta 20.
Su puntaje será 1.05 + 1.07 + 1.2 = 3.32
. Si se tratara de una suma directa de respuestas, su puntaje sería 3, pero la ponderación de la profundidad de la cadena recompensa las respuestas más difíciles.
Para comenzar:
Aquí está el primer requisito, dado por mi jefe *:
Requisito 0: el programa debe generar 0 antes que cualquier otra cosa.
*ficticio
Lista de requisitos e idiomas
Tenga en cuenta que esto puede estar desactualizado; consulte la última respuesta publicada inmediatamente antes de publicar su respuesta para asegurarse de que cumple con todos los requisitos. Lamento mucho si crea un programa exquisito, solo para que alguien lo abrace; si realmente quiere publicarlo de todos modos, especifique que no compite.
Requisito completo (pero tal vez no actual): no puede contener
0
,*
o]
en el código fuente, y no puede utilizar un builtin de unión en línea nueva. Emite0
, luego toma una entrada entera no negativan
y genera una nueva línea seguida deln
número de Fibonacci indexado 0 (puede ser1
indexado), seguido de una nueva línea, seguida de la misma entrada n al cuadrado, seguida de una nueva línea, seguida den
multiplicada por una nueva entradam
, seguida de una nueva línea, seguida de10^B
, dondeB
es el número de bytes en el código fuente, seguido de una nueva línea, seguido deln
número0
primo th -indexed (también puede ser1
-indexed), seguido de una nueva línea, seguido del mayor divisor común de n y m.0: el programa debe salir
0
antes que nada. Idioma: N / A
1: La fuente del programa no puede contener0
. Idioma: 05AB1E
2: el programa toma una entrada entera no negativan
y emite una nueva línea seguida del0
enésimo número de Fibonacci1
indexado (puede indexarse). Idioma: dc
3: el programa genera una nueva línea, seguida de la misma entrada aln
cuadrado. Idioma: J
4: el programa genera una nueva línea, seguida den
multiplicada por una nueva entradam
. Idioma: Ohm
5: el programa no puede contener*
(código ASCII0x2A
). Lenguaje: Python 3
6: El programa genera una nueva línea, seguida de10^B
, dondeB
es el número de bytes en el código fuente. Idioma: Mathematica
7: El programa genera una nueva línea, seguida deln
número0
primo th -indexed (también puede ser1
-indexed). Lenguaje: JavaScript (ES6)
8: El programa no utiliza un builtin incorporado a las nuevas líneas, pero puede usar cualquier otro builtin incorporado. Idioma: Jelly
9: el programa genera una nueva línea seguida por el divisor común más grande de ny m. Idioma: Scala
10: el programa no puede contener]
. Lengua: Pyth
Puntuaciones actuales (ordenadas por primera publicación)
Okx : 1.01
R. Kap : 2.09
Conor O'Brien : 1.03
Nick Clifford : 1.04
Eric Rose : 1.05
Greg Martin : 1.06
Erik the Outgolfer : 2.18
math_junkie : 1.09