Python递归斐波那契“树”输出

时间:2019-11-01 03:18:30

标签: python recursion sequence turtle-graphics fibonacci

摘要:坦率地说,这是一项家庭作业,但是我已经完成了作业最初要求我的工作。在这一点上,我正在挑战自己,以在程序中构建其他功能。我想在给出[n]编号时构建 visual 斐波那契“树”。

例如:

用户输入n的6,给出结果8,但是一棵树也被打印到控制台或使用Turtle可视化。 (见图1)

到目前为止,我已经创建了一个以parent(n),child1(n-1)和child2(n-2)为参数的类,以及一些笨拙的代码,以将它们输出为基本三角形的方式输出,这些三角形按组打印of3。不过,我还没有想像下面的示例那样制作视觉效果。

图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输出写入文件而不是在此处进行操作,但是它折衷和紧凑,以至于我我不确定这样做是否现实。我已经考虑过使用Turtle模块,就像我之前提到的那样,也许是以某种方式?我也玩过链表(节点类)的想法,但是与节点的多个关联来构建树?寻找一些输入。

我的问题:我已经有一个有效的递归Fibonacci程序,但是我的问题是我将如何打印n个数字的Fibonacci序列输出的可视表示。我基本上是想输出上面作为示例给出的ASCII斐波那契树。

0 个答案:

没有答案