So I have read that the number of nodes in a order k binomial tree at depth d is k choose d. However, I don't see where that result comes from. Anyone have a simple proof/intuition for this?
Number of nodes at depth d in binomial tree
1.4k Views Asked by HashBr0wn At
2
There are 2 best solutions below
0
Matt Timmermans
On
@templatetypedef gives a formal(ish :) proof. Here's an informal proof:
In Pascal's triangle, the nodes in level N are the sum of level N-1, plus level N-1 shifted right.
In binomial trees, the tree of order N contains the tree of order N-1, plus the tree of order N-1 shifted down.
If we replace each level of a binomial tree with a count of the nodes in that level, the binomial tree construction becomes exactly the Pascal's triangle construction.
Related Questions in ALGORITHM
- Two different numbers in an array which their sum equals to a given value
- Given two arrays of positive numbers, re-arrange them to form a resulting array, resulting array contains the elements in the same given sequence
- Time complexity of the algorithm?
- Find a MST in O(V+E) Time in a Graph
- Why k and l for LSH used for approximate nearest neighbours?
- How to count the number of ways of choosing of k equal substrings from a List L(the list of All Substrings)
- Issues with reversing the linkedlist
- Finding first non-repeating number in integer array
- Finding average of an array
- How to check for duplicates with less time in a list over 9000 elements by python
- How to pick a number based on probability?
- Insertion Sort help in javascript -- Khan Academy
- Developing a Checkers (Draughts) engine, how to begin?
- Can Bellman-Ford algorithm be used to find shorthest path on a graph with only positive edges?
- What is the function for the KMP Failure Algorithm?
Related Questions in DATA-STRUCTURES
- Borrow mutable and immutable reference in the same block
- Why would one use a heap over a self balancing binary search tree?
- Reverse linked list in java
- Doubly Linked List, MergeSort, getting undefined and unreliable results
- Difference in performance of adding elements in Treeset directly vs transferring from arraylist?
- Why the leaf node in red black tree is NIL?
- When to use double pointers?
- find the biggest possible number comprised of the digits of of a given number
- Data structure to efficiently merge up to n elements of multiset
- How to convert a string to a key for hash table
- Implement queues in java
- What does it mean to "close over" something?
- How to use hash tables when amount of slots is unknown?
- Unknown Data Structure?
- how to find type of connection between the social network entities
Related Questions in TREE
- prolog traverse nonstandard tree left to right
- Why would one use a heap over a self balancing binary search tree?
- recursively editing member variable: All instances have same value
- D3.js collapsable tree - visualise set number of levels
- java - How to generate Tree from two dimensional array
- Haskell, Tree problems
- d3 indented tree close other nodes with child and open only specific node
- Function that return average depth of a binary search tree
- SQL Tree Structure Table
- Java: make prefix tree remember last value that was not null
- C++: no matching function call
- Building SQL tree from random parent updates
- Use significant attributes only, or use full set of attributes to build J48 model after checking information gain?
- Trie Data Structure in Finding an Optimal Solution
- How to store data in a tree structure in R?
Related Questions in BINOMIAL-HEAP
- Data structure with fast insertion
- implement decreasing key in binomial heap
- Can skew binomial heaps support efficient merge?
- Why can't we sort N numbers in comparison sorting algorithm faster than O(n log n) time?
- recursion and traversing a binomial tree
- Number of nodes at depth d in binomial tree
- Printing the contents of a binomial heap in ascending/descending order
- binary heap vs binomial heap vs fibonacci heap, regarding performance for a priority queue
- If binomial heaps are represented as collections of trees, why does this implementation just have one tree?
- What's the most efficient way to convert a binomial tree into a sorted array of keys?
- Correct functional implementation on Binomial Heap
- Binomial heap: more efficient way for initial build than successive inserts?
- Implementing binomial heap
- How do I insert values into this binomial heap?
- Can binomial heap be used to find connected components in a graph?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Here's a simple proof of the result using induction, though I think there's got to be a more elegant, intuitive argument that doesn't require induction.
We'll prove this statement by induction on n:
The base case of n = 0 requires us to show that at depth d = 0 is (0 choose 0), which is 1. And that's true. Yay!
For the inductive step, assume this is true for n = k; we'll prove this for n = k + 1. Recall that a binomial tree of order k+1 can be formed by taking two binomial trees of order k and making one the child of the other. So if you pick any depth d, the number of nodes at depth d in the tree is given by
Our inductive hypothesis tells us that the number of nodes here is then (k choose d) + (k choose d-1). Now, for Fun Facts About Binomial Coefficients! What do you get if you add (k choose d) + (k choose d-1)? That works out to (k+1 choose d). (Think Pascal's triangle for a nice easy proof, or work out the math).
We've got the claim holding for k+1, which finishes off our nice inductive proof.
All that's left to do now is to work out the intuition. :-)