Резюме: Честно говоря, это домашнее задание, но я уже выполнил то, что первоначально требовалось от меня. На данный момент я ставлю перед собой задачу встроить в программу дополнительные функции. Я хочу построить визуальное"дерево" Фибоначчи, когда дается число [n].
Например:
Пользовательский ввод 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) + "]")
Что я пробовал / думал: Я попытался записать выходные данные объекта ветвления в файл вместо того, чтобы манипулировать им там, но он становится настолько эклектичным и узким, что я не уверен, реалистично ли этосделать это таким образом. Я думал об использовании модуля Turtle, как я уже упоминал ранее, может быть, каким-то образом? Я также поиграл с идеей связанных списков (класс узла), но с несколькими ассоциациями с узлом, чтобы построить дерево? Ищем какой-нибудь ввод.
Мой вопрос: У меня уже есть работающая рекурсивная программа Фибоначчи, но мой вопрос заключается в том, как мне распечатать визуальное представление вывода Фибоначчи? последовательность для n числа. Я в основном хочу вывести свое ASCII-дерево Фибоначчи, которое я привел в качестве примера выше.