gpt4 book ai didi

java - 打印 Sierpinski 三角形的程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:00 25 4
gpt4 key购买 nike

我只是在看维基百科页面,我发现了这个Sierpinski triangle

我想用java,c,scala等来创建这个三角形

                               1                               
111
11111
1111111
111111111
11111111111
1111111111111
111111111111111
1 1
111 111
11111 11111
1111111 1111111
111111111 111111111
11111111111 11111111111
1111111111111 1111111111111
111111111111111 111111111111111
1 1
111 111
11111 11111
1111111 1111111
111111111 111111111
11111111111 11111111111
1111111111111 1111111111111
111111111111111 111111111111111
1 1 1 1
111 111 111 111
11111 11111 11111 11111
1111111 1111111 1111111 1111111
111111111 111111111 111111111 111111111
11111111111 11111111111 11111111111 11111111111
1111111111111 1111111111111 1111111111111 1111111111111
111111111111111 111111111111111 111111111111111 111111111111111

我只是创建简单的程序,就像我们在 c 中创建简单模式一样 我在 scala 中编写了这个

def ft(n: Int) = {
for (i <- 1 to n) {
for (j <- n to i by -1) {
print(" ")
}
for (k <- 1 to 2 * i - 1) {
print("1")

}
print("\n")
}
}

打印这个

           1
111
11111
1111111
111111111

还有这个:

def triangle = {
for (i <- 1 to 5) {
for (j <- 1 to 5) {
if (j <= i)
print("1")
else
print(" ")
}
for (j <- 5 to 1 by -1) {
if (j <= i)
print("1");
else
print(" ");
}
print("\n");
}
}

如何创建这个Sierpinski 三角形

给我解决这个问题的想法?

最佳答案

我不懂 Scala 或 Java,但似乎语言对你来说并不重要。这是 PostScript 中的解决方案:

%PS-Adobe 3.0

/Sierp { % x1 y1 x2 y1 x3 y3 depth
13 dict begin
/D exch def
/Y3 exch def
/X3 exch def
/Y2 exch def
/X2 exch def
/Y1 exch def
/X1 exch def

D 0 le {
newpath
X1 Y1 moveto
X2 Y2 lineto
X3 Y3 lineto
fill
} {
/X12 X1 X2 add 0.5 mul def
/Y12 Y1 Y2 add 0.5 mul def
/X23 X2 X3 add 0.5 mul def
/Y23 Y2 Y3 add 0.5 mul def
/X31 X3 X1 add 0.5 mul def
/Y31 Y3 Y1 add 0.5 mul def

X1 Y1 X12 Y12 X31 Y31 D 1 sub Sierp
X12 Y12 X2 Y2 X23 Y23 D 1 sub Sierp
X31 Y31 X23 Y23 X3 Y3 D 1 sub Sierp
} ifelse

end
} bind def

/Sierpinski { % xc yc radius depth
4 dict begin
/D exch def
/R exch def
/Y exch def
/X exch def

X
Y R add
X 0.8333 R mul add
Y -0.5 R mul add
X -0.8333 R mul add
Y -0.5 R mul add
D
Sierp
end
} bind def

300 400 250 6 Sierpinski
showpage

关于java - 打印 Sierpinski 三角形的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com