Hilo de policías
En este hilo, su tarea es crear un programa / función basado en recursividad para generar cualquier serie entera. Los ladrones intentarán encontrar una solución no recursiva más corta en el hilo de los ladrones .
Sinopsis del desafío
En muchos idiomas, las funciones recursivas pueden simplificar significativamente una tarea de programación. Sin embargo, la sobrecarga de sintaxis para una recursión adecuada puede limitar su usabilidad en code-golf.
Los policías crearán un programa o función tomando un solo entero n
, que generará las primeras n
entradas de una serie de enteros, utilizando solo la recursividad 1 . También deben asegurarse de que haya una forma más corta y no recursiva de generar la secuencia para marcar su entrada como segura.
Los ladrones intentarán encontrar un programa o función más cortos en el mismo idioma, generando la misma serie entera, sin recurrencia 2 .
Si la presentación de la policía no se resuelve en diez días (240 horas), el policía demostrará que, de hecho, era posible tener un enfoque no recursivo más corto al revelar su propia solución. Luego pueden marcar su presentación como segura .
El ganador del desafío de policías será la presentación basada en recursión más corta (según el código de golf ) marcada como segura.
El ganador del desafío de los ladrones será el ladrón que descubrió la mayor cantidad de soluciones.
1: solo necesita ser recursivo en sintaxis; no necesita preocuparse, por ejemplo, por la optimización de llamadas de cola.
2: De nuevo, no recursivo en sintaxis; por lo que no puede publicar una solución recursiva y reclamar que está compilada en un bucle gracias a la optimización de la cola de llamadas.
Requerimientos de la sumisión
Cada envío tendrá un solo entero n
(cero o uno). La presentación generará o devolverá las primeras n
entradas de una serie entera de elección. (tenga en cuenta que esta serie entera no debe depender de n
). El método de entrada y salida puede diferir entre el enfoque recursivo y el no recursivo. La serie entera puede ser cualquier serie determinista con una longitud de al menos 5. La serie debe explicarse correctamente.
Su envío no tiene que funcionar para arbitrariamente grande n
, pero debería funcionar por lo menos n=5
. El enfoque no recursivo debe ser capaz de funcionar hasta al menos lo mismo n
que el enfoque recursivo, o hasta n=2^15-1
, lo que sea menor.
Recursividad
En aras de este desafío, la recursión se define como la creación de la secuencia deseada utilizando una función (o construcción similar a una función ) que se llama a sí misma (o llama a una secuencia de funciones que termina llamándose a sí misma; esto incluye construcciones como el combinador Y). La profundidad de recursión debe ir al infinito como n
va al infinito. El enfoque no recursivo es cualquier cosa que no sea recursiva.
n
si es teóricamente correcto, pero no se puede ejecutar debido a limitaciones de tiempo o memoria?
n=5
debe calcularse
xfor
esté disponible a través de algún tipo de importación), por lo que quizás este idioma no pueda competir.
for
se hace recursivamente detrás, esfor
recursivo o en bucle?