总结:坦率地说,这是一个家庭作业,但我已经完成了作业最初对我的要求。在这一点上,我正在挑战自己,在程序中构建额外的功能。当给定[n]个数时,我想建立一个可视化的Fibonacci“树”。你知道吗
例如:
用户输入6表示n,结果8被给出,但是一个树也被打印到控制台,或者使用Turtle可视化。(见图1)
到目前为止,我已经创建了一个类,将parent(n)、child1(n-1)和child2(n-2)作为参数,并编写了一些笨拙的代码,将它们以三角形的形式输出,这些三角形以3为一组打印出来。然而,我还没有弄清楚如何制作一个类似于下面这个例子的视觉效果。你知道吗
图1)
fib(6)
/ \
/ \
fib(4) - - fib(5) fib(4) - - fib(3)
/ | | | | \
/ | | | | \
fib(2) - - fib(3) fib(2) fib(3) fib(2) fib(1) fib(2) - - 1
| | | / \ | |
| | | / \ | |
1 fib(1) 1 fib(2) fib(1) 1 1
/ / \
/ / \
1 1 1
def __init__(self, child1, child2, parent):
self.firstchild = child1
self.secondchild = child2
self.parent = parent
def show(self):
if self.firstchild == 1 and self.secondchild == 0:
print(" [fib" + str(self.parent) + "]")
print(" / \\")
print(" / \\")
print(" [" + str(self.secondchild) + "] [" + str(self.firstchild) + "] <-- End of branch")
else:
print(" [fib" + str(self.parent) + "]")
print(" / \\")
print(" / \\")
print(" [fib" + str(self.secondchild) + "] [fib" + str(self.firstchild) + "]")
我的尝试/想法:我尝试将分支对象show output写入一个文件,而不是在那里对其进行操作,但是它变得非常折衷和紧凑,我不确定这样做是否现实。我曾经想过使用海龟模块,就像我之前提到的,也许在某种程度上?我也尝试过链表(node类)的概念,但是用一个节点的多个关联来构建一棵树?寻找一些信息。你知道吗
我的问题:我已经有了一个可以运行的递归Fibonacci程序,但我的问题是如何打印出n个数的Fibonacci序列输出的可视化表示。我基本上是想输出我的ASCII Fibonacci树,我在上面给出了一个例子。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐