指定された (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 は 2 番目の要素を参照しています。
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 の場合に、計算された値でサブツリーを自動的に作成するツリーを実装するにはどうすればよいでしょうか。