Los números catalanes ( OEIS ) son una secuencia de números naturales que a menudo aparecen en combinatoria.
El enésimo número catalán es el número de palabras Dyck (cadenas equilibradas de paréntesis o paréntesis como [[][]]
; formalmente definido como una cadena que usa dos caracteres ayb de modo que cualquier subcadena que comience desde el principio tenga un número de caracteres mayor o igual a número de caracteres b, y toda la cadena tiene el mismo número de caracteres ayb) con longitud 2n. El enésimo número catalán (para n> = 0) también se define explícitamente como:
A partir de n = 0, los primeros 20 números catalanes son:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190...
Reto
Escriba un programa o función completa que tome un número entero no negativo n a través de STDIN o una alternativa aceptable, y genere el enésimo número catalán. Su programa debe funcionar como mínimo para las entradas 0-19.
I / O
Entrada
Su programa debe recibir información de STDIN, argumentos de función o cualquiera de las alternativas aceptables según esta meta publicación. Puede leer el número ingresado como su representación decimal estándar, representación unaria o bytes.
- Si (y solo si) su idioma no puede recibir información de STDIN o alguna alternativa aceptable, puede recibir información de una variable codificada o equivalente adecuado en el programa.
Salida
Su programa debe generar el enésimo número catalán a STDOUT, resultado de la función o cualquiera de las alternativas aceptables según esta meta publicación. Puede generar el número catalán en su representación decimal estándar, representación unaria o bytes.
El resultado debe consistir en el número catalán apropiado, seguido opcionalmente por una o más líneas nuevas. No se puede generar otra salida, excepto la salida constante del intérprete de su idioma que no se puede suprimir (como un saludo, códigos de color ANSI o sangría).
No se trata de encontrar el idioma más corto. Se trata de encontrar el programa más corto en todos los idiomas. Por lo tanto, no aceptaré una respuesta.
En este desafío, los idiomas más nuevos que el desafío son aceptables siempre que tengan una implementación. Se permite (e incluso se recomienda) escribir este intérprete usted mismo para un idioma previamente no implementado. Aparte de eso, todas las reglas estándar del código de golf deben ser obedecidas. Las presentaciones en la mayoría de los idiomas se puntuarán en bytes en una codificación preexistente apropiada (generalmente UTF-8). Tenga en cuenta también que están permitidos los elementos integrados para calcular el enésimo número catalán.
Catalogar
El Fragmento de pila al final de esta publicación genera el catálogo a partir de las respuestas a) como una lista de la solución más corta por idioma yb) como una tabla de clasificación general.
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
## Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:
## Perl, 43 + 2 (-p flag) = 45 bytes
También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes