Вступление
Серпинский Arrowhead Curve кривой, это предел Треугольник Серпинский.
Сначала начинается так:
_
/ \
Затем каждая строка заменяется повернутой версией первой:
_
/ \
\ /
_/ \_
Следующий:
_
/ \
\ /
_/ \_
/ \
\_ _/
_ \ / _
/ \_/ \_/ \
Твое задание
Учитывая число n , выведите n-ю итерацию кривой стрелки Серпинского.
Вы можете выбрать 0- или 1-индекс, но, пожалуйста, укажите в своем ответе.
Вы можете создать изображение или использовать Ascii Art в формате, который у меня есть выше.
Вы не можете использовать встроенные модули для создания этой кривой.
Помните, это код-гольф , поэтому выигрывает код с наименьшим количеством байтов.
u=.5;v=3^u/2;B=[u,v];C=[-u,v];A=C<0;
на 16 байтов короче :) Вы такжеaxis off equal
можете сэкономить еще 5 байтов.Haskell + диаграммы, 176 байт
Делает SVG-файл с прозрачным фоном под названием «а».
g 0
выводит горизонтальную линию,g 1
есть/¯\
.источник
Diagrams
!plot()
чтобы открыть окно.MSWLogo (версия 6.5b), 102 байта
Принимает две функции
shapeL
,shapeR
приведенные здесь, и объединяет их, добавляя дополнительный аргумент:a
, который вызывает противоположную функцию при отрицании.s
Определяется функция , которая принимает количество итераций:n
( начиная с 1), угол:a
, длину:l
. Это рекурсивно, вызывая более низкую итерацию с углом:a
в двух случаях, чтобы получить правильную ориентацию.rt :a
,lt :a
поверните черепаху (треугольник, чей путь прослежен) вправо, влево на:a
градусы.fd :l
двигает черепаху вперед по:l
шагам.Функция должна вызываться
:a
равной 60.Здесь,
repeat
по сути, цикл FOR, со встроенным счетчикомrepcount
.pu
иpd
означают «перо вверх» и «перо вниз», которые не позволяют черепахе рисовать, когда ее положение задается с помощьюsetxy
.Чертежи каждой итерации были вызваны с длиной,
:l
равнойpower 2 (7-repcount)
, которая уменьшается в геометрической прогрессии; это связано с тем, что в определении используется то же самое:l
на рекурсивном шаге, поэтому при фиксированном:l
общий размер вывода будет увеличиваться экспоненциально:n
.источник
60
в счетчик байтов?Python 2, 124 байта
Основано на коде в статье в Википедии.
Порядок 0 прямая.
источник
Mathematica / Wolfram Language 73 байта
Простое объяснение:
AnglePath [{θ1, θ2, θ3,…}] дает список 2D координат, соответствующих траектории, которая начинается в {0,0}, затем проходит серию шагов единичной длины при последовательных относительных углах θi.
п = 1
п = 2
п = 3
источник
Mathematica, 62 байта
источник
JavaScript (ES6), 180 байт
Возвращает массив строк. Получение правильного расстояния было самой сложной частью! Версия с чистой строкой для 205 байтов:
источник