Compte tenu de la séquence OEIS A033581 , qui est la séquence infinie, la n ième terme (0-indexation) est donnée par la formule de la forme fermée 6 × n 2 .
Votre tâche consiste à écrire du code, qui génère tous les sous-ensembles de l'ensemble des N premiers nombres de la séquence, de sorte que la somme du sous-ensemble soit un carré parfait.
Règles
- L'entier
N
est donné en entrée. - Vous ne pouvez pas réutiliser un nombre déjà utilisé dans la somme. (c'est-à-dire que chaque numéro peut apparaître au plus une fois dans chaque sous-ensemble)
- Les nombres utilisés peuvent être non consécutifs.
- Le code avec la plus petite taille gagne.
Exemple
La séquence donnée est {0,6,24,54,96, ..., 15000}
L'un des sous-ensembles requis sera {6,24,294}, car
6+24+294 = 324 = 18^2
Vous devez trouver tous ces ensembles de toutes les longueurs possibles dans la plage donnée.
code-golf
math
sequence
subsequence
prog_SAHIL
la source
la source
Réponses:
05AB1E , 10 octets
Essayez-le en ligne!
Comment?
la source
Haskell ,
11410410386 octetsMerci à Laikoni et Ørjan Johansen pour la majeure partie du golf! :)
Essayez-le en ligne!
La version légèrement plus lisible:
la source
Pyth , 12 octets
-2 octets grâce à M. Xcoder
Essayez-le en ligne!
2 octets supplémentaires doivent être ajoutés pour supprimer
[]
et[0]
, mais ils me semblent être une sortie valide!Explication
la source
fsI@sT2ym*6*
.Nettoyer ,
145... 97 octetsEssayez-le en ligne!
Utilise la fonction d'assistance
@
pour générer la puissance définie enn
termes en concaténant chaque terme de[[],[6*n^2],...]
avec chaque terme de[[],[6*(n-1)*2],...]
récursivement et dans l'ordre inverse.La fonction partielle
f
est alors composée (où->
dénote lao
composition) comme:apply @ -> take the elements where -> the sum -> is a square
Malheureusement, il n'est pas possible d'ignorer le
f=
et de fournir un littéral de fonction partiel , car les règles de priorité nécessitent qu'il ait des crochets lorsqu'il est utilisé en ligne.la source
Gelée , 12 octets
Essayez-le en ligne!
La sortie est une liste de sous-ensembles, y compris
0
s et le sous-ensemble vide.la source
Wolfram Language (Mathematica) , 49 octets
Approche par force brute
Essayez-le en ligne!
la source
JavaScript (ES7), 107 octets
Démo
Afficher l'extrait de code
Commenté
la source
Japt , 15 octets
Essayez-le
Explication
Générez sur un tableau d'entiers de 0 à input (
ò
) et passez chacun par une fonction (_ Ã
),²
mettez-la au carré ( ) et multipliez-la par 6 (*6
). Obtenez toutes les combinaisons de ce tableau (à
) et supprimez celles qui retournent truey (k
) lorsqu'elles sont passées par une fonction (_
) qui ajoute leurs éléments (x
), obtient la racine carrée du résultat (¬
) et modifie cela par 1 (u1
)la source