bt = BinaryTree([[None,[]],[[],[[[],[]],[None,[]]]]]) latex.eval(latex(bt))
bt.node_number() bt.depth() bt.is_complete()
BT = BinaryTrees() BT
BT.cardinality()
BT2 = BinaryTrees(2) BT2
BT2.cardinality()
latex.eval(latex(BT2[0]))
latex.eval(latex(BT2[1]))
BT3 = BinaryTrees(3) BT3.cardinality()
for bt in BinaryTrees(3): latex.eval(latex(bt))
BinaryTrees(11).cardinality()
len(list(BinaryTrees(11)))
[BinaryTrees(i).cardinality() for i in xrange(10)]
[1/(n+1) * binomial(2*n, n) for n in xrange(10)]
def random_binary1(size): dw = DyckWords(size).random_element() return dw.to_binary_tree() bt1 = random_binary1(11) bt2 = random_binary1(11) latex.eval(latex(bt1)) latex.eval(latex(bt2))
def random_binary2(size): p = Permutations(size).random_element() return p.binary_search_tree_shape() bt1 = random_binary2(11) bt2 = random_binary2(11) latex.eval(latex(bt1)) latex.eval(latex(bt2))
mean([float(random_binary1(11).depth()) for i in xrange(1000)])
mean([float(random_binary2(11).depth()) for i in xrange(1000)])
mean([float(random_binary1(100).depth()) for i in xrange(10000)])
mean([float(random_binary2(100).depth()) for i in xrange(10000)])