introduction
Semblable à la séquence de Fibonacci, la séquence de Padoue ( OEIS A000931 ) est une séquence de nombres générée en ajoutant des termes précédents à la séquence. Les valeurs initiales sont définies comme suit:
P(0) = P(1) = P(2) = 1
Les 0ème, 1er et 2ème termes sont tous 1. La relation de récurrence est indiquée ci-dessous:
P(n) = P(n - 2) + P(n - 3)
Ainsi, il en résulte la séquence suivante:
1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200, 265, 351, ...
En utilisant ces nombres comme longueurs de côtés de triangles équilatéraux, vous obtenez une belle spirale lorsque vous les placez tous ensemble, un peu comme la spirale de Fibonacci:
Image reproduite avec l' aimable autorisation de Wikipedia
Tâche
Votre tâche consiste à écrire un programme qui recrée cette spirale par une sortie graphique, avec une entrée correspondant à quel terme.
Règles
- Votre candidature doit pouvoir traiter au moins jusqu'au 10ème mandat (9)
- Votre soumission doit être un programme complet ou une fonction qui prend une entrée et affiche un résultat graphique (soit une image ou des graphiques, etc.)
- Vous devez montrer une preuve de votre sortie graphique dans votre soumission.
- Les rotations de la sortie sont autorisées, par multiples de 60 degrés, avec la même représentation
- Aller dans le sens anti-horaire est également autorisé
- Les échappatoires standard sont interdites
Vous pouvez supposer que l'entrée sera> 0 et que le format d'entrée correct sera donné.
Notation
C'est le code-golf , donc le code le plus court en octets gagne. Bonne année à tous!
la source
Réponses:
Mathematica,
119108 octetsMerci à Martin Ender d'avoir économisé 11 octets!
Fonction non nommée prenant un argument entier positif (indexé 1) et renvoyant une sortie graphique. Exemple de sortie pour l'entrée
16
:Développé simultanément avec la réponse Matlab de flawr, mais avec de nombreuses similitudes dans la conception, incluant même la définition
I^(2/3)
de la sixième racine de l'unité! Version plus facile à lire:La ligne 1 définit la séquence de Padoue
±n = P(n)
. La ligne 4 crée un tableau imbriqué de nombres complexes, définissant lez
long du chemin; la dernière partie±# z^(#+{2,4,1})&~Array~#
génère de nombreux triplets, chacun correspondant aux vecteurs à dessiner pour compléter le triangle correspondant (le±#
contrôle de la longueur et lez^(#+{2,4,1})
contrôle de la direction). La ligne 3 supprime l'imbrication de la liste, puis calcule les totaux cumulés des nombres complexes, pour convertir les vecteurs en coordonnées pures; La ligne 2 convertit ensuite les nombres complexes en paires ordonnées de nombres réels et affiche la ligne polygonale correspondante.la source
Matlab,
202190 octetsSortie pour
N=19
(indexation basée sur 1):Explication
L'idée approximative est de travailler avec des nombres complexes. Ensuite, les arêtes des triangles pointent toujours dans la direction d'une sixième racine d'unité.
la source
PHP + SVG, 738 octets
Sortie pour 16
la source
$k%6==0
peut être$k%6<1
et$k%6==5
peut être$k%6>4
.Python 3,
280, 262 octets18 octets sauvés grâce à ovs
Golfé:
Même chose avec quelques commentaires:
Capture d'écran pour
N=9
:la source
dwitter 151
peut être testé sur http://dwitter.net (utilisez le plein écran)
L'idée de base est logo tortue, golfée. a volé la fonction P () d'en haut!
J'imagine que plus de gens pourraient jouer au golf par récursivité, mais ce n'est pas mauvais.
la source
LOGO, 119 octets
Pour utiliser, faire quelque chose comme ça :
Exemple de sortie (impossible d'intégrer car ce n'est pas HTTPS et le téléchargement dans imgur a échoué)
la source