From 80d98d780095f8ec1db04b69be56de462fe24a00 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Sat, 2 Oct 2021 08:37:52 +0530 Subject: [PATCH 1/5] Create README.md --- Dynamic Programming/Bell Numbers/Images/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Dynamic Programming/Bell Numbers/Images/README.md diff --git a/Dynamic Programming/Bell Numbers/Images/README.md b/Dynamic Programming/Bell Numbers/Images/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Dynamic Programming/Bell Numbers/Images/README.md @@ -0,0 +1 @@ + From 690a6db078a691157974c26770e106c37e470a66 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Sat, 2 Oct 2021 08:38:34 +0530 Subject: [PATCH 2/5] Add files via upload --- .../Bell Numbers/Images/bell1.png | Bin 0 -> 13869 bytes .../Bell Numbers/Images/bell2.png | Bin 0 -> 9257 bytes .../Bell Numbers/Images/bell3.png | Bin 0 -> 19582 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Dynamic Programming/Bell Numbers/Images/bell1.png create mode 100644 Dynamic Programming/Bell Numbers/Images/bell2.png create mode 100644 Dynamic Programming/Bell Numbers/Images/bell3.png diff --git a/Dynamic Programming/Bell Numbers/Images/bell1.png b/Dynamic Programming/Bell Numbers/Images/bell1.png new file mode 100644 index 0000000000000000000000000000000000000000..74b817bc4128a289ff795d07f8e1a24c417febeb GIT binary patch literal 13869 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 AXNcT;HY=eD; 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 P_W>HJx{oWAZA1SJD67dB literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Bell Numbers/Images/bell2.png b/Dynamic Programming/Bell Numbers/Images/bell2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c47b4b17b34854764155aaa061ec5d4e936fca7 GIT binary patch literal 9257 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Bell Numbers/Images/bell3.png b/Dynamic Programming/Bell Numbers/Images/bell3.png new file mode 100644 index 0000000000000000000000000000000000000000..42f49e5b474193e40995cb13a225b0a29e444fef GIT binary patch literal 19582 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 P13i1H@}%^!NznfV%b@M1 literal 0 HcmV?d00001 From fed3dbd2e106b131a1ee1e343ac15a1e7aa5704b Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Sat, 2 Oct 2021 08:38:48 +0530 Subject: [PATCH 3/5] Delete README.md --- Dynamic Programming/Bell Numbers/Images/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Dynamic Programming/Bell Numbers/Images/README.md diff --git a/Dynamic Programming/Bell Numbers/Images/README.md b/Dynamic Programming/Bell Numbers/Images/README.md deleted file mode 100644 index 8b137891..00000000 --- a/Dynamic Programming/Bell Numbers/Images/README.md +++ /dev/null @@ -1 +0,0 @@ - From 70d6056f958c8a46aacfea1bfa7ffad0730ca262 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Sat, 2 Oct 2021 08:39:16 +0530 Subject: [PATCH 4/5] Create bell_numbers.py --- .../Bell Numbers/bell_numbers.py | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Dynamic Programming/Bell Numbers/bell_numbers.py diff --git a/Dynamic Programming/Bell Numbers/bell_numbers.py b/Dynamic Programming/Bell Numbers/bell_numbers.py new file mode 100644 index 00000000..9356c0f6 --- /dev/null +++ b/Dynamic Programming/Bell Numbers/bell_numbers.py @@ -0,0 +1,65 @@ +# A Python program to find n'th Bell number +# Approach : Dynamic Programming +# Abhishek S, 2021 + +# ---------------------------------------------------------- + +# Problem statement : Given a set of n elements, find the +# number of ways of partitioning it. + +# ---------------------------------------------------------- + +# Solution : Used the Dynamic Approach to solve the problem. + +# This is the working function which will check and return the +# nth bell numbers one after another using the Dynamic Programming +# method + +def bellNumber(n): + + bell = [[0 for i in range(n+1)] for j in range(n+1)] + bell[0][0] = 1 + for i in range(1, n+1): + + # Explicitly fill for j = 0 + bell[i][0] = bell[i-1][i-1] + + # Fill for remaining values of j + for j in range(1, i+1): + bell[i][j] = bell[i-1][j-1] + bell[i][j-1] + + return bell[n][0] + +# Driver program +print ("- Bell Numbers using Dynamic Programming Approach -") +print ("---------------------------------------------------") +print () +z = int(input("Enter the number of numbers you wanna print : ")) +print () +print ("---------------------------------------------------") +print () +print ("Output : ") +print () +for n in range(z): + print('Bell Number', n, 'is', bellNumber(n)) + + + +# ---------------------------------------------------------- + +# Enter the number of numbers you wanna print : 6 + +# ---------------------------------------------------------- + +# Output : + +# Bell Number 0 is 1 +# Bell Number 1 is 1 +# Bell Number 2 is 2 +# Bell Number 3 is 5 +# Bell Number 4 is 15 +# Bell Number 5 is 52 + +# ---------------------------------------------------------- + +# Code contributed by, Abhishek Sharma, 2021 From 20a25b1b1e42b4165c242052a7cb5c923aa62742 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Sat, 2 Oct 2021 08:50:31 +0530 Subject: [PATCH 5/5] Create README.md --- Dynamic Programming/Bell Numbers/README.md | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Dynamic Programming/Bell Numbers/README.md diff --git a/Dynamic Programming/Bell Numbers/README.md b/Dynamic Programming/Bell Numbers/README.md new file mode 100644 index 00000000..a95ba9d3 --- /dev/null +++ b/Dynamic Programming/Bell Numbers/README.md @@ -0,0 +1,87 @@ +# Bell Numbers Problem using Dynamic Programming +Language used : **Python 3** + +## ๐ŸŽฏ Aim +The aim of this script is to find out the nth Bell numbers using Dynamic Programming method.. + +## ๐Ÿ‘‰ Purpose +The main purpose of this script is to show the implementation of Dynamic Programming to find out nth Bell Numbers. + +## ๐Ÿ“„ Description +- **What is Bell Number ?** -- Let `S(n, k)` be total number of partitions of n elements into k sets. The value of nโ€™th Bell Number is sum of `S(n, k)` for `k = 1 to n`. Value of `S(n, k)` can be defined recursively as, `S(n+1, k) = k*S(n, k) + S(n, k-1)`. +- Given a set of n elements, find number of ways of partitioning it. +Examples: +``` +Input: n = 2 +Output: Number of ways = 2 +Explanation: Let the set be {1, 2} + { {1}, {2} } + { {1, 2} } +``` +## ๐Ÿ“ˆ Workflow of the script +- `bellNumber` -- This is the working function which will check and return the nth bell numbers one after another using the Dynamic Programming method. +- `main` - This is the driver program for this script. + +## ๐Ÿ“ƒ Explanation +When we add a (n+1)โ€™th element to k partitions, there are two possibilities. +1) It is added as a single element set to existing partitions, i.e, S(n, k-1) +2) It is added to all sets of every partition, i.e., k*S(n, k) +S(n, k) is called Stirling numbers of the second kind +First few Bell numbers are 1, 1, 2, 5, 15, 52, 203, โ€ฆ. +A Simple Method to compute nโ€™th Bell Number is to one by one compute S(n, k) for k = 1 to n and return sum of all computed values. Refer this for computation of S(n, k). +A Better Method is to use Bell Triangle. Below is a sample Bell Triangle for first few Bell Numbers. +``` +1 +1 2 +2 3 5 +5 7 10 15 +15 20 27 37 52 +``` + +## ๐Ÿงฎ Algorithm +The triangle is constructed using below formula. +``` +// If this is first column of current row 'i' +If j == 0 + // Then copy last entry of previous row + // Note that i'th row has i entries + Bell(i, j) = Bell(i-1, i-1) + +// If this is not first column of current row +Else + // Then this element is sum of previous element + // in current row and the element just above the + // previous element + Bell(i, j) = Bell(i-1, j-1) + Bell(i, j-1) +``` + +**Interpretation :** +Then Bell(n, k) counts the number of partitions of the set {1, 2, โ€ฆ, n + 1} in which the element k + 1 is the largest element that can be alone in its set. +For example, Bell(3, 2) is 3, it is count of number of partitions of {1, 2, 3, 4} in which 3 is the largest singleton element. There are three such partitions: +``` + {1}, {2, 4}, {3} + {1, 4}, {2}, {3} + {1, 2, 4}, {3}. +``` +## ๐Ÿ’ป Input and Output +- **Test Case 1 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Bell%20Numbers/Images/bell1.png) + +- **Test Case 2 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Bell%20Numbers/Images/bell2.png) + +- **Test Case 3 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Bell%20Numbers/Images/bell3.png) + + +## โฐ Time and Space complexity +- **Time Complexity:** `O(n^2)`. + +--------------------------------------------------------------- +## ๐Ÿ–‹๏ธ Author +**Code contributed by, _Abhishek Sharma_, 2021 [@abhisheks008](github.com/abhisheks008)** + +[![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)