Dada la secuencia OEIS A033581 , que es la secuencia infinita, el n 'th plazo (0-indexación) viene dada por la forma fórmula cerrada 6 × n 2 .
Su tarea es escribir código, que genera todos los subconjuntos del conjunto de N primeros números en la secuencia, de modo que la suma del subconjunto sea un cuadrado perfecto.
Reglas
- El entero
Nse da como entrada. - No puede reutilizar un número ya utilizado en la suma. (es decir, cada número puede aparecer en cada subconjunto como máximo una vez)
- Los números utilizados pueden ser no consecutivos.
- Código con el menor tamaño gana.
Ejemplo
La secuencia dada es {0,6,24,54,96, ..., 15000}
Uno de los subconjuntos requeridos será {6,24,294}, porque
6+24+294 = 324 = 18^2
Necesita encontrar todos estos conjuntos de todas las longitudes posibles en el rango dado.
code-golf
math
sequence
subsequence
prog_SAHIL
fuente
fuente

Respuestas:
05AB1E , 10 bytes
Pruébalo en línea!
¿Cómo?
ݨn6 * æʒOŲ || Programa completo Llamaré a la entrada N. Ý || Rango inclusivo basado en 0. Presione [0, N] ∩ ℤ. ¨ || Eliminar el último elemento. n || Cuadrado (elemento-sabio). 6 * || Multiplicar por 6. æ || Set de poder. ʒ || Filtre y guarde los que satisfacen lo siguiente: O || --- | Su suma ... Ų || --- | ... ¿Es un cuadrado perfecto?fuente
Haskell ,
11410410386 bytes¡Gracias a Laikoni y Ørjan Johansen por la mayor parte del golf! :)
Pruébalo en línea!
La versión ligeramente más legible:
fuente
Pyth , 12 bytes
-2 bytes gracias al Sr. Xcoder
Pruébalo en línea!
Es necesario agregar 2 bytes más para eliminar
[]y[0], ¡pero me parecen resultados válidos!Explanataion
fuente
fsI@sT2ym*6*.Limpio ,
145... 97 bytesPruébalo en línea!
Utiliza la función auxiliar
@para generar el conjunto de potencia enntérminos al concatenar cada término de[[],[6*n^2],...]con cada término de forma[[],[6*(n-1)*2],...]recursiva y en orden inverso.La función parcial
fse compone (donde->denotaocomposición) como:apply @ -> take the elements where -> the sum -> is a squareDesafortunadamente, no es posible omitir
f=y proporcionar un literal de función parcial , porque las reglas de precedencia requieren que tenga corchetes cuando se usa en línea.fuente
Jalea , 12 bytes
Pruébalo en línea!
La salida es una lista de subconjuntos que incluyen
0sy el subconjunto vacío.fuente
Wolfram Language (Mathematica) , 49 bytes
Enfoque de fuerza bruta
Pruébalo en línea!
fuente
JavaScript (ES7), 107 bytes
Manifestación
Mostrar fragmento de código
Comentado
fuente
Japt , 15 bytes
Intentalo
Explicación
Genere en una matriz de enteros desde 0 hasta input (
ò) y pase cada uno a través de una función (_ Ã),²cuadrándola ( ) y multiplicándose por 6 (*6). Obtenga todas las combinaciones de esa matriz (à) y elimine aquellas que devuelven verdadero (k) cuando se pasa a través de una función (_) que agrega sus elementos (x), obtiene la raíz cuadrada del resultado (¬) y modifica eso por 1 (u1)fuente