Un Presque équilatéral Heronian triangle est un triangle dont les longueurs entières de la forme n-1
, n
et n+1
et a également la zone entière. Les premiers sont:
3, 4, 5 -> 6
13, 14, 15 -> 84
51, 52, 53 -> 1170
Quête : générer le programme le plus court qui génère len
triplet. (Indice: il s'agit d'une séquence connue).
Le gagnant sera sélectionné le 2 mai 2014.
Réponses:
APL,
1514 caratsMême approche que la solution d' alephalpha mais utilise le plancher au lieu du terme de correction.
Merci à algorithmshark d' avoir souligné que l'opérateur de trajet enregistre un caractère.
la source
(⍳3)
enregistre un caractère0 1 2
, et je suis sûr que vous pouvez utiliser Commute pour le faire⎕*⍨2+√3
et en enregistrer un autre.⍳3
cède1 2 3
et est donc un caractère de plus.Mathematica,
26, 22, 1618 caractèresla source
GolfScript (
2421 caractères)Prend l'entrée sur stdin, donne la sortie à stdout sous la forme
Démo en ligne
Notez que j'ai supposé que le 0ème élément de la séquence est
[1 2 3]
(avec la zone 0), ce qui, je pense, est cohérent avec OEIS A003500 .Merci à Howard pour une économie de 3 caractères.
la source
(.).)]
est de deux caractères plus courte. De plus, si vous commencez avec2 4
vous pouvez remplacer\;
avec;
et enregistrer une supplémentaire.2 4
et traité[3 4 5]
comme le 0ème élément, donc je suis gêné de ne pas avoir repéré cette manière alternative d'exploiter l'offset. Merci.GNU dc ,
3019 octetsCela utilise la même astuce que la réponse APL de @ Howard, donc un seul terme doit être calculé. Prend l'entrée pour n de stdin.
Production:
la source
Python 77
Une implémentation assez détaillée en Python
la source
N
par une valeur? Votre programme ne demande aucune entrée.Python 3, 83 caractères
Cela utilise une solution récursive, profitant du fait que (citation de Wikipedia ):
la source
JavaScript (ECMAScript 6) - 52 caractères
Définit une fonction récursive
f
qui retourne le n ème terme et une fonctiong
qui retourne un tableau contenant le triple correspondant.JavaScript - 41 caractères
Attend que le terme à calculer soit stocké dans la variable globale
x
et renvoie le triple à la console.la source
CJam, 13 octets
La première version de CJam est 10 jours plus ancienne que ce défi, mais je ne sais pas si toutes les fonctionnalités que j'utilise étaient présentes à l'époque. Cependant, le défi est officiellement clos, alors ...
Testez-le ici.
Explication
la source