给定 (M, F) - 对于某个过程的每一步,元组变为 (M + F, F) 或 (M, M + F)。因此,从 (1, 1) 开始,以下是可能的:
If not root,
left_ child = (parent0 + parent1, parent1)
and right_child = (parent0, parent0 + parent1)
其中 parent0 指的是父元组的第一个元素,而 parent1 指的是第二个元素。
我完全不确定在给定 M 和 F 的任何起始值的情况下,我将如何创建一棵树,该树将遵循上述算法在 n 步后创建树。
当我决定在线搜索时,我得到了一些类似的东西:
class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = None
root = Tree()
root.data = "root"
root.left = Tree()
root.left.data = "left"
root.right = Tree()
root.right.data = "right"
或者
class Tree:
def __init__(self, cargo, left=None, right=None):
self.cargo = cargo
self.left = left
self.right = right
def __str__(self):
return str(self.cargo)
tree = Tree(1, Tree(2), Tree(3))
我想不出一种方法来使用上面的代码来构建我想要的状态空间树。也就是说,当给定的输入是(M,F)和n是过程中的步骤数(即树中的级别数)时,我如何实现一个自动创建具有计算值的子树的树。