谢尔宾斯基三角
* * * *
拉格朗日计划
* * * *
谢尔宾斯基三角

谢尔宾斯基三角是一种基于等边三角形的分形图案,其构造方法如下:

把等边三角形三边中点相连,就在其内部分隔出四个等边小三角形,挖去中间的三角形,并在其余三角形中不断重复这一过程。

打印如下的四阶谢尔宾斯基三角:

注:为显示效果以下使用的是标准ASCII字符X,原题中要求使用▲
               X
              X X
             X   X
            X X X X
           X       X
          X X     X X
         X   X   X   X
        X X X X X X X X
       X               X
      X X             X X
     X   X           X   X
    X X X X         X X X X
   X       X       X       X
  X X     X X     X X     X X
 X   X   X   X   X   X   X   X
X X X X X X X X X X X X X X X X


本题难度:



解答

把一个大三角看作是由三个小三角拼成,因此先生成大小为1的三角$s_1$,再反复执行把$s_k$居中后在下方拼接两个由空格隔开的$s_k$这一操作来生成$s_{k+1}$。

最终代码有三行(写成递归也许可以再压缩)。

代码长度:91字节 vs. 全站第一:58字节。

s=["▲"]
exec("s=[j.center(2*len(j)+1)for j in s]+[j+' '+j for j in s];"*4)
*map(print,s),