Wprowadzenie
Sierpiński Arrowhead krzywa jest krzywą, że to ograniczenie jest trójkąt Sierpińskiego.
Najpierw zaczyna się tak:
_
/ \
Następnie każda linia jest zastępowana obróconą wersją pierwszej:
_
/ \
\ /
_/ \_
Kolejny:
_
/ \
\ /
_/ \_
/ \
\_ _/
_ \ / _
/ \_/ \_/ \
Twoje zadanie
Biorąc pod uwagę liczbę n , wypisz n-tą iterację krzywej Sierpińskiego.
Możesz wybrać indeks 0 lub 1, ale proszę podać w swojej odpowiedzi.
Możesz wygenerować obraz lub użyć Ascii Art w formacie, który mam powyżej.
Nie możesz używać wbudowanych do generowania tej krzywej.
Pamiętaj, to jest kodowanie w golfa , więc wygrywa kod z najmniejszą liczbą bajtów.
u=.5;v=3^u/2;B=[u,v];C=[-u,v];A=C<0;
jest o 16 bajtów krótszy :) Możesz takżeaxis off equal
zapisać kolejne 5 bajtów.Haskell + diagramy, 176 bajtów
Tworzy plik svg z przezroczystym tłem o nazwie „a”.
g 0
wyświetla linię poziomą,g 1
jest/¯\
.źródło
Diagrams
!plot()
otworzyć okno.MSWLogo (wersja 6.5b), 102 bajty
Zajmuje dwie funkcje
shapeL
,shapeR
podane tutaj i łączy je dodając dodatkowy argument:a
, który wywołuje funkcję przeciwną gdy zanegowany.s
Zdefiniowana jest funkcja , która przyjmuje liczbę iteracji:n
(na podstawie 1), kąt:a
, długość:l
. Jest rekurencyjny, nazywając siebie niższą iteracją z:a
zanegowanym kątem w dwóch przypadkach, aby uzyskać prawidłową orientację.rt :a
,lt :a
obróć żółwia (trójkąt, którego ścieżka jest wytyczona) w prawo, w lewo o:a
stopnie.fd :l
przesuwa żółwia krok po:l
kroku.Funkcja ma być wywołana z wartością
:a
równą 60.Tutaj
repeat
jest zasadniczo pętli FOR, z wbudowanym licznikiemrepcount
.pu
ipd
oznaczają „pióro w górę” i „pióro w dół”, które powstrzymują żółwia przed rysowaniem podczas ustawiania jego położeniasetxy
.Rysunki każdej iteracji zostały nazwane długością
:l
równąpower 2 (7-repcount)
, która maleje wykładniczo; dzieje się tak, ponieważ definicja używa tego samego:l
w kroku rekurencyjnym, więc przy ustalonym:l
całkowitym rozmiarze wyjściowym wzrośnie wykładniczo o:n
.źródło
60
liczbę bajtów?Python 2, 124 bajty
Na podstawie kodu z artykułu z Wikipedii.
Zamówienie 0 jest linią prostą.
źródło
Język Mathematica / Wolfram 73 bajty
Proste wyjaśnienie :
AnglePath [{θ1, θ2, θ3,…}] podaje listę współrzędnych 2D odpowiadających ścieżce rozpoczynającej się od {0,0}, a następnie wykonuje serię kroków długości jednostki przy kolejnych kątach względnych θi.
n = 1
n = 2
n = 3
źródło
Mathematica, 62 bajty
źródło
JavaScript (ES6), 180 bajtów
Zwraca tablicę ciągów. Wyrównanie odległości było najtrudniejsze! Wersja czystego ciągu dla 205 bajtów:
źródło