甲流蛇,也称为高斯帕曲线,是分形曲线,用一个简单的过程的每个顺序/迭代中大小呈指数增长。以下是有关构造的详细信息以及各种订单的一些示例:
订单1流蛇:
____
\__ \
__/
2级流蛇:
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
3级流蛇:
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
施工
考虑要使用包含7条边和8个顶点的路径构建1阶Flow Snake(如下所示。为方便起见,对其进行了放大):
4____5____6
\ \
3\____2 7\
/
0____1/
现在,对于每个下一个订单,您只需将边缘替换为该原始订单1模式的旋转版本。使用以下3条规则替换边缘:
1对于水平边缘,将其替换为原始形状,如下所示:
________
\ \
\____ \
/
____/
2对于/
边缘(12
在上述结构中),请用以下旋转版本替换它:
/
/ ____
\ / /
\/ /
/
____/
3对于\
边缘(34
及67
以上),将其替换为以下旋转版本:
/
/ ____
\ \ \
\ \ \
\ /
\/
因此,例如,带有标记为1阶的顶点的2阶看起来像
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
现在,对于更高的阶数,您只需将当前电平分解为长度为/
1,1 \
或2的边_
并重复该过程即可。请注意,即使在替换后,任意两个连续边之间的公共顶点仍然重合。
挑战
- 您必须编写一个完整程序的函数,该函数可以
N
通过STDIN / ARGV / function参数或最接近的等效参数接收单个整数,并N
在STDOUT上打印Flow Snake 的顺序。 - 输入整数始终大于
0
。 - 不应有任何不属于模式的前导空格。
- 应该没有尾随空格或足够的尾随空格以填充图案以完全填充最小边界矩形。
- 尾随换行符是可选的。
有趣的事实
- Flow Snakes是Snow Flakes的文字游戏,此模式类似于2阶及更高阶
- 实际上,“流和蛇”在模式中起着一定的作用,因为模式是由一条贯穿整个路径的路径组成的。
- 如果您仔细注意,则2阶(以及更高阶)图案包括1阶图案的旋转,这些旋转在当前和上一个边的公共顶点上枢转。
- 流蛇有一个非ASCII变体,可以在此处和其他几个位置找到。
这是代码高尔夫球,因此最短的代码以字节为单位!
排行榜
为确保您的答案显示出来,请使用以下Markdown模板以标题开头每个答案:
# Language Name, N bytes
N
您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如:
# Ruby, <s>104</s> <s>101</s> 96 bytes