introduction
La courbe de pointe de flèche de Sierpinski est une courbe dont la limite est le triangle de Sierpinski.
Cela commence d'abord comme ceci:
_
/ \
Ensuite, chaque ligne est remplacée par une version pivotée de la première:
_
/ \
\ /
_/ \_
Prochain:
_
/ \
\ /
_/ \_
/ \
\_ _/
_ \ / _
/ \_/ \_/ \
Ta tâche
Étant donné un nombre n , sortez la n -ième itération de la courbe de pointe de flèche de Sierpinski.
Vous pouvez choisir d'index 0 ou 1, mais veuillez préciser dans votre réponse.
Vous pouvez générer une image ou utiliser Ascii Art dans le format que j'ai ci-dessus.
Vous ne pouvez pas utiliser de fonctions intégrées pour générer cette courbe.
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le moins d'octets gagne.
u=.5;v=3^u/2;B=[u,v];C=[-u,v];A=C<0;
est 16 octets plus court :) Vous pouvez également faireaxis off equal
pour enregistrer 5 autres octets.Haskell + diagrammes, 176 octets
Crée un fichier svg avec un fond transparent appelé "a".
g 0
sort une ligne horizontale,g 1
est/¯\
.la source
Diagrams
!plot()
pour ouvrir une fenêtre.MSWLogo (version 6.5b), 102 octets
Prend les deux fonctions
shapeL
,shapeR
données ici et les fusionne en ajoutant un argument supplémentaire:a
, qui appelle la fonction opposée lorsqu'elle est annulée.Une fonction
s
est définie, qui prend le nombre d'itérations:n
(basé sur 1), l'angle:a
, la longueur:l
. Il est récursif, appelant une itération inférieure de lui-même avec l'angle:a
annulé dans deux cas pour obtenir l'orientation correcte.rt :a
,lt :a
tournez la tortue (triangle truc dont le chemin est tracé) à droite, à gauche par:a
degrés.fd :l
fait avancer la tortue par:l
étapes.La fonction doit être appelée avec une valeur
:a
égale à 60.Ici,
repeat
c'est essentiellement une boucle FOR, avec compteur intégrérepcount
.pu
etpd
signifient "stylo vers le haut" et "stylo vers le bas", qui empêchent la tortue de dessiner pendant que sa position est définie à l'aide desetxy
.Les dessins de chaque itération ont été appelés avec une longueur
:l
égale àpower 2 (7-repcount)
, ce qui diminue de façon exponentielle; c'est parce que la définition utilise la même chose:l
dans l'étape récursive, donc avec fixe:l
la taille globale de la sortie augmentera de façon exponentielle avec:n
.la source
60
dans le nombre d'octets?Python 2, 124 octets
Basé sur le code de l'article Wikipedia.
L'ordre 0 est une ligne droite.
la source
Langage Mathematica / Wolfram 73 octets
Explication simple:
AnglePath [{θ1, θ2, θ3,…}] donne la liste des coordonnées 2D correspondant à un chemin qui commence à {0,0}, puis prend une série de pas de longueur unitaire aux angles relatifs successifs θi.
n = 1
n = 2
n = 3
la source
Mathematica, 62 octets
la source
JavaScript (ES6), 180 octets
Renvoie un tableau de chaînes. Obtenir le bon espacement a été la partie la plus difficile! Version chaîne pure pour 205 octets:
la source