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
fuente
Respuestas:
Respuesta 10 - Pyth
Requisito: Toma dos entradas,
n
(> = 0) ym
. Salidas0
sin 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 del1
enésimo número de Fibonacci0
indexado (puede indexarse), seguido de una nueva línea, seguido de unn
cuadrado, seguido de una nueva línea, seguido den
multiplicado porm
, seguido de una nueva línea, seguido de10^B
dóndeB
es el número de bytes en el código fuente, seguido de una nueva línea y eln
número1
primo 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
j
lugar de hacerlojb
, ya que estaría usando un builtin de unirse a nuevas líneas.Respuesta 1 - 05AB1E
Requisito: Imprime
0
... sin un0
en el código fuentefuente
Respuesta 3 - J
Requisito: Salidas
0
sin0
en el código fuente, a continuación, se lleva a una entrada de número entero no negativon
y emite una nueva línea seguida por el0
-indexedn
'th número de Fibonacci (puede ser1
indexado), seguido de una nueva línea, seguido por la misma entradan
al cuadrado.Pruébalo en línea!
fuente
Respuesta 4 - Ohm
Requisito: Emite
0
sin0
el código fuente, luego toma una entrada entera no negativan
y emite una nueva línea seguida deln
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 den
multiplicado por una nueva entradam
.fuente
Respuesta 2 - dc
Requisito: Emite
0
sin0
el código fuente, luego toma una entrada entera no negativan
y emite una nueva línea seguida del 'número de Fibonacci0
indexadon
' (puede1
indexarse).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
n
y cualquier númerom
y vuelve una cadena que contiene0
sin el uso de0
cualquier lugar en el código fuente, a continuación, una nueva línea seguida por el0
-indexedn
ésimo número de Fibonacci (puede ser1
indexado), seguido por una nueva línea, seguida de unn
cuadrado, seguida de una nueva línea, seguida den
multiplicada porm
sin el uso de*
ninguna parte del código fuente, seguida de una nueva línea, seguida de10^B
dóndeB
está el número de bytes en el código fuente, y finalmente seguido de un nueva línea y eln
número0
primo indexado th (también puede ser1
indexado).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
n
y cualquier númerom
y vuelve una cadena que contiene0
sin el uso de0
cualquier lugar en el código fuente, a continuación, una nueva línea seguida por el0
-indexedn
ésimo número de Fibonacci (puede ser1
indexado), seguido por una nueva línea, seguida de unn
cuadrado, seguida de una nueva línea, seguida den
multiplicada porm
sin el uso de*
ninguna parte del código fuente, seguida de una nueva línea, seguida de10^B
dóndeB
está el número de bytes en el código fuente, y finalmente seguido de un nueva línea y el índicen
th0
(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
. Salidas0
sin el uso0
o*
en cualquier lugar del código fuente, y sin incorporaciones para unirse en líneas nuevas. Luego genera una nueva línea seguida del1
enésimo número de Fibonacci0
indexado (puede indexarse), seguido de una nueva línea, seguido de unn
cuadrado, seguido de una nueva línea, seguido den
multiplicado porm
, seguido de una nueva línea, seguido de10^B
dóndeB
es el número de bytes en el código fuente, seguido de una nueva línea y eln
número1
primo 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