Я пытаюсь доказать, что бинарное дерево с узлами имеет самое большее ⌈ nлистья. Как мне поступить с индукцией?
Для людей, которые следили за оригинальным вопросом о кучах, он был перенесен сюда .
Я пытаюсь доказать, что бинарное дерево с узлами имеет самое большее ⌈ nлистья. Как мне поступить с индукцией?
Для людей, которые следили за оригинальным вопросом о кучах, он был перенесен сюда .
Ответы:
Теперь я предполагаю, что вопрос заключается в следующем:
Давайте работать с определением дерева . Для T такого дерева, пусть п Т число узлов в Т и л Т число листьев в T .T r e e = E m p t y ∣ L e a f∣Node(Tree,Tree) T nT T lT T
Вы правильно делаете это по индукции, но вам понадобится структурная индукция, которая следует древовидной структуре. Для деревьев это часто делается как полная индукция по высоте деревьев.h(T)
Индукционный якорь состоит из двух частей. Во-первых, для имеем T = E m p t y с l T = n T = 0 ; претензия явно относится к пустому дереву. Для h ( t ) = 1 , т.е. T = L e a f , аналогично имеем l T = 1 = ⌈ n Th(t)=0 T=Empty lT=nT=0 h(t)=1 T=Leaf , так что претензия распространяется на листья.lT=1=⌈nT2⌉
Гипотеза об индукции: Предположим, что утверждение верно для всех (двоичных) деревьев с произвольным, но фиксированным h ( T ) ≤ k , k ≥ 1 .T h(T)≤k k≥1
Для индуктивного шага рассмотрим произвольное двоичное дерево с h ( T ) = k + 1 . Поскольку k ≥ 1 , T = N o d e ( L , R ) и n T = n L + n R + 1 . Поскольку L и R также являются бинарными деревьями (иначе T не будет) и h ( L ) , h (T h(T)=k+1 k≥1 T=Node(L,R) nT=nL+nR+1 L R T , гипотеза индукции применяется и имеетh(L),h(R)≤k
Поскольку все листья находятся либо в L, либо в R , мы имеемT L R
Неравенство , отмеченное может быть проверено с помощью (четыре стороны) случаем различия по поводу того , п L , п R ∈ 2 N . В силу индукции это завершает доказательство.(∗) nL,nR∈2N
В качестве упражнения вы можете использовать ту же технику для доказательства следующих утверждений:
источник
Я немного смущен этим вопросом. Если вас интересуют деревья со степенью не более , что, как говорит Википедия, вам нужно, мы сталкиваемся с проблемой, что у одного ребра n = 2 узла и n = 2 листа, но n / 2 = 1 . Во всяком случае, здесь есть что-то близкое, что имеет легкий аргумент.3 n=2 n=2 n/2=1
Пусть такое дерево с n узлами и L листьями. Так как T - дерево, существует n - 1 ребер, и их двойной счет, мы видим, что 2 n - 2 ≤ L + 3 ( n - L ), который говорит, что 2 L ≤ n + 2, и это тесно в двух Пример вершины выше. Я думаю, что если вы хотите предположить, что существует один корень степени два и n ≥ 3 , то вы можете уточнить этот аргумент, чтобы дать 2 LT n L T n−1
источник