[练习]打印 Sirpinski(谢尔宾斯基) 三角形

头像
523066680
Administrator
Administrator
帖子: 340
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 30 times
Been thanked: 27 times
联系:

[练习]打印 Sirpinski(谢尔宾斯基) 三角形

帖子 #1 523066680 » 2017年03月18日 09:48

Sirpinski 三角形的构造和图示可以参考
Wikipedia: Sierpinski triangle

512px-Sierpinski_triangle_evolution.svg.png
512px-Sierpinski_triangle_evolution.svg.png (8.16 KiB) 查看 370 次
512px-Sierpinski_triangle_evolution.svg.png
512px-Sierpinski_triangle_evolution.svg.png (8.16 KiB) 查看 370 次

头像
523066680
Administrator
Administrator
帖子: 340
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 30 times
Been thanked: 27 times
联系:

Re: [练习]打印 Sirpinski(谢尔宾斯基) 三角形

帖子 #2 523066680 » 2017年03月18日 10:01

Perl 版

Code: [全选] [展开/收缩] [Download] (Untitled.pl)
  1. #Code by 523066680 / Sirpinski Triangle
  2. my @tri = "*";
  3. func( \@tri, 1 );
  4.  
  5. sub func
  6. {
  7.     my ($ref, $lv) = (shift, shift);
  8.     my @tri;
  9.     my $top = $#$ref + 1;
  10.  
  11.     grep { push @tri, "$_ $_" } @$ref;
  12.     grep { unshift @tri, " "x$top .$_ ." "x$top } ( reverse @$ref );
  13.  
  14.     ( $lv <= 4 ) ?
  15.          func( \@tri, $lv+1 ) : print join("\n", @tri);
  16. }


>
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *


回到 “算法和编码”

在线用户

用户浏览此论坛: 没有注册用户 和 1 访客