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 negativany genera una nueva línea seguida delnnúmero de Fibonacci indexado 0 (puede ser1indexado), seguido de una nueva línea, seguida de la misma entrada n al cuadrado, seguida de una nueva línea, seguida denmultiplicada por una nueva entradam, seguida de una nueva línea, seguida de10^B, dondeBes el número de bytes en el código fuente, seguido de una nueva línea, seguido delnnúmero0primo 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
0antes que nada. Idioma: N / A
1: La fuente del programa no puede contener0. Idioma: 05AB1E
2: el programa toma una entrada entera no negativany emite una nueva línea seguida del0enésimo número de Fibonacci1indexado (puede indexarse). Idioma: dc
3: el programa genera una nueva línea, seguida de la misma entrada alncuadrado. Idioma: J
4: el programa genera una nueva línea, seguida denmultiplicada 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, dondeBes el número de bytes en el código fuente. Idioma: Mathematica
7: El programa genera una nueva línea, seguida delnnúmero0primo 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
fuente

Respuestas:
Respuesta 10 - Pyth
Requisito: Toma dos entradas,
n(> = 0) ym. Salidas0sin el uso de0,*o]en cualquier parte del código fuente, y sin incorporaciones para unirse en nuevas líneas. Luego genera una nueva línea seguida del1enésimo número de Fibonacci0indexado (puede indexarse), seguido de una nueva línea, seguido de unncuadrado, seguido de una nueva línea, seguido denmultiplicado porm, seguido de una nueva línea, seguido de10^BdóndeBes el número de bytes en el código fuente, seguido de una nueva línea y elnnúmero1primo th -indexed (también puede ser0-indexed), y finalmente seguido de una nueva línea y el divisor común más grande de ny m.Intérprete en línea
fuente
jlugar de hacerlojb, ya que estaría usando un builtin de unirse a nuevas líneas.Respuesta 1 - 05AB1E
Requisito: Imprime
0... sin un0en el código fuentefuente
Respuesta 3 - J
Requisito: Salidas
0sin0en el código fuente, a continuación, se lleva a una entrada de número entero no negativony emite una nueva línea seguida por el0-indexedn'th número de Fibonacci (puede ser1indexado), seguido de una nueva línea, seguido por la misma entradanal cuadrado.Pruébalo en línea!
fuente
Respuesta 4 - Ohm
Requisito: Emite
0sin0el código fuente, luego toma una entrada entera no negativany emite una nueva línea seguida delnnúmero de Fibonacci indexado en 0 (puede ser 1 indexado), seguido de una nueva línea, seguida de la misma entrada n al cuadrado, seguido de una nueva línea, seguido denmultiplicado por una nueva entradam.fuente
Respuesta 2 - dc
Requisito: Emite
0sin0el código fuente, luego toma una entrada entera no negativany emite una nueva línea seguida del 'número de Fibonacci0indexadon' (puede1indexarse).Pruébalo en línea!
fuente
Respuesta 5 - Python 3
Requisitos: emite 0 sin 0 en el código fuente, luego toma una entrada entera no negativa n y emite una nueva línea seguida del enésimo número de Fibonacci indexado en 0 (puede ser 1 indexado), seguido de una nueva línea, seguida de la misma entrada n al cuadrado, seguido de una nueva línea, seguido de n multiplicado por una nueva entrada m. No utilice el carácter
*, código ASCII 0x2A.fuente
Respuesta 6 - Mathematica
Requisito: emite 0 sin 0 o * en el código fuente, luego toma una entrada entera no negativa n y emite una nueva línea seguida del enésimo número de Fibonacci indexado en 0 (puede ser 1 indexado), seguido de una nueva línea, seguido de misma entrada n al cuadrado, seguida de una nueva línea, seguida de n multiplicada por una nueva entrada m, seguida de una nueva línea, seguida de 10 ^ B donde B es el número de bytes en el código fuente.
fuente
Respuesta 7 - JavaScript (ES6)
: Requisito función A que toma dos entradas, un número entero no negativo
ny cualquier númeromy vuelve una cadena que contiene0sin el uso de0cualquier lugar en el código fuente, a continuación, una nueva línea seguida por el0-indexednésimo número de Fibonacci (puede ser1indexado), seguido por una nueva línea, seguida de unncuadrado, seguida de una nueva línea, seguida denmultiplicada pormsin el uso de*ninguna parte del código fuente, seguida de una nueva línea, seguida de10^BdóndeBestá el número de bytes en el código fuente, y finalmente seguido de un nueva línea y elnnúmero0primo indexado th (también puede ser1indexado).Fragmento de prueba
Mostrar fragmento de código
fuente
String.fromCharCode(48)a1-1. No es que realmente importe ;-) (Además, hay dos ceros más adelante en el código fuente, que puede solucionar de la misma manera)Respuesta 8 - Gelatina
Función A que toma dos entradas, un número entero no negativo: Requisito
ny cualquier númeromy vuelve una cadena que contiene0sin el uso de0cualquier lugar en el código fuente, a continuación, una nueva línea seguida por el0-indexednésimo número de Fibonacci (puede ser1indexado), seguido por una nueva línea, seguida de unncuadrado, seguida de una nueva línea, seguida denmultiplicada pormsin el uso de*ninguna parte del código fuente, seguida de una nueva línea, seguida de10^BdóndeBestá el número de bytes en el código fuente, y finalmente seguido de un nueva línea y el índicenth0(también puede ser1-indexado) número primo. No se permiten incorporaciones para unirse en nuevas líneas, pero aun así se permite unir incorporadas.Pruébalo en línea!
fuente
Respuesta 9 - Scala
Requisitos : Toma dos entradas,
n(> = 0) ym. Salidas0sin el uso0o*en cualquier lugar del código fuente, y sin incorporaciones para unirse en líneas nuevas. Luego genera una nueva línea seguida del1enésimo número de Fibonacci0indexado (puede indexarse), seguido de una nueva línea, seguido de unncuadrado, seguido de una nueva línea, seguido denmultiplicado porm, seguido de una nueva línea, seguido de10^BdóndeBes el número de bytes en el código fuente, seguido de una nueva línea y elnnúmero1primo th -indexed (también puede ser0-indexed), y finalmente seguido de una nueva línea y el divisor común más grande de ny m.Pruébalo aquí
fuente