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 answers
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
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in DATA-STRUCTURES
- Why is the runtime for this O(n)?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- What is the problem in my "sumAtBis" code?
- Asking code suggestions about data structure and algorithm
- What would be the most efficient way to store multiple sets of fixed arrays (std::vector)?
- About Suffix Trees features
- Getting wrong answer in Binary Search solution
- Are there techniques to mathematically compute the amount of searching in greedy graph searching?
- AVL tree Nth largest operation - How to have all my tests pass? JAVA
- Why does the map size change?
- Complexity in Union of disjointed sets with lists
- Hash collisions in Golang map resolving
- C++ ordered map optimized with index access
- How to sort this list of strings along with the strings and output the result as expected?
- Why deleting an element in a linkedlist costs O(1)
Related Questions in TREE
- Python - how to make tree without any library
- how to get the full path of antd tree
- Python Quadtree won't insert values
- Top View Of Binary Tree Depth First Search Using TreeMap
- Select/filter tree structure in postgres
- PySimpleGUI tree doesn't Insert data into tree
- Is it possible to create a node-link diagram with ggplot?
- Represent a full, but not complete, binary tree with an array structure
- Redirecting stdout with execvp
- Prevent selected node to be unselect primevue Tree component
- Binary Search Tree (BST) - array representations
- Debugging AVL Tree Deletion: Unbalanced Node Not on Deletion Path
- How to shorten line length in react-d3-tree
- installed dm-tree vs imported tree
- Why the height of segment tree is O(logn)
Related Questions in BINOMIAL-HEAP
- Delete and Increase key for Binomial heap
- Binomial heap sibling - linked list reversal
- Binomial Min Heap delete issue
- Why can't we sort N numbers in comparison sorting algorithm faster than O(n log n) time?
- Can skew binomial heaps support efficient merge?
- Creating a binomial heap from an array?
- Number of nodes at depth d in binomial tree
- recursion and traversing a binomial tree
- Can binomial heap be used to find connected components in a graph?
- Idris not recognizing equivalant types
- DRAWING Binomial Heap
- What's the most efficient way to convert a binomial tree into a sorted array of keys?
- Printing the contents of a binomial heap in ascending/descending order
- How do I insert values into this binomial heap?
- Counting the number of nodes in certain level binomial heap
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?
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)
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. :-)