Introducción
La curva de punta de flecha de Sierpinski es una curva cuyo límite es el triángulo de Sierpinski.
Primero comienza así:
_
/ \
Luego, cada línea se reemplaza con una versión girada de la primera:
_
/ \
\ /
_/ \_
Próximo:
_
/ \
\ /
_/ \_
/ \
\_ _/
_ \ / _
/ \_/ \_/ \
Tu tarea
Dado un número n , la salida de la n iteración-ésimo de la punta de flecha de la curva de Sierpinski.
Puede elegir 0 o 1 índice, pero especifique en su respuesta.
Puede generar una imagen o usar Ascii Art en el formato que tengo arriba.
No puede usar las funciones integradas para generar esta curva.
Recuerde, esto es código golf , por lo que gana el código con la menor cantidad de bytes.
u=.5;v=3^u/2;B=[u,v];C=[-u,v];A=C<0;
es 16 bytes más corto :) También puede haceraxis off equal
para guardar otros 5 bytes.Diagramas Haskell +, 176 bytes
Crea un archivo svg con fondo transparente llamado "a".
g 0
da salida a una línea horizontal,g 1
es/¯\
.fuente
Diagrams
!plot()
para abrir una ventana.MSWLogo (Versión 6.5b), 102 bytes
Toma las dos funciones
shapeL
,shapeR
dadas aquí y las fusiona agregando un argumento adicional:a
, que llama a la función opuesta cuando se niega.Se
s
define una función , que toma varias iteraciones:n
(basadas en 1), ángulo:a
, longitud:l
. Es recursivo, llamando a una iteración más baja de sí mismo con el ángulo:a
negado en dos casos para obtener la orientación correcta.rt :a
,lt :a
gire la tortuga (cosita triangular cuyo camino se traza) derecha, izquierda en:a
grados.fd :l
mueve la tortuga hacia adelante por:l
pasos.La función se llamará con
:a
igual a 60.Aquí,
repeat
es esencialmente un bucle FOR, con contador incorporadorepcount
.pu
ypd
significa "pluma hacia arriba" y "pluma hacia abajo", que impiden que la tortuga dibuje mientras se establece su posiciónsetxy
.Los dibujos de cada iteración se han llamado con una longitud
:l
igual apower 2 (7-repcount)
, que disminuye exponencialmente; Esto se debe a que la definición usa lo mismo:l
en el paso recursivo, por lo que con fijo:l
el tamaño total de la salida aumentará exponencialmente con:n
.fuente
60
en el recuento de bytes?Python 2, 124 bytes
Basado en el código del artículo de Wikipedia.
El orden 0 es una línea recta.
fuente
Mathematica / Wolfram Language 73 bytes
Explicación simple:
AnglePath [{θ1, θ2, θ3, ...}] proporciona la lista de coordenadas 2D correspondientes a una ruta que comienza en {0,0}, luego toma una serie de pasos de longitud unitaria en ángulos relativos sucesivos θi.
n = 1
n = 2
n = 3
fuente
Mathematica, 62 bytes
fuente
JavaScript (ES6), 180 bytes
Devuelve una matriz de cadenas. ¡Lograr el espacio correcto fue la parte más difícil! Versión de cadena pura para 205 bytes:
fuente