The problem in this experiment was to find to a procedure or formula to find the nth bell number. To find the procedure/formula of the nth bell number, a list of bell numbers will be looked at and based off the relationship between the numbers a procedure/formula will be determined. A conjecture for this problem must include a factorial in the formula because bell numbers find all the partitions of a set meaning they have to be rearranged in each way much like how middle school questions ask “how many different ways can you rearrange 4 crayons”. Solutions
One way to calculate Bell Numbers is by looking at Aitken’s array. The way this array is formulated is by starting with the number 1 as the first row. After, take the leftmost number from each row and place that as the first number in the row preceding it. To find the number that should be all the way to the left, add the number above and then placing that number to the right. Repeat these steps until there is 1 more number than there was on the the previous row. Each number on the right of each row is the bell number. The number of the row being nth term and the rightmost umber being the value of the nth term.
Aitken’s Array 12 235 571015 1520273752 Although this is a good way to calculate the first few bell numbers, when the number of rows get larger,this method is not an efficient way to calculate the bell numbers. The purpose of this experiment was to find a formula that calculates the nth bell number. numbers using the same process of Aitken’s array. When this is generated the results are 5,52,203,877,4140,21147. Even though this will generate the bell numbers in a click of a button, this takes too much generating power and is the same as doing it manually. So another method was used to fgure out the nth term of the bell number.
There were numerous attempts to finding the nth term of the bell numbers. The first formula used to find the nth bell number is called the Dobinski’s Formula. Below is the Dobinski Formula. This summation works by first giving “n” a value. For example to find the value of the 3rd bell number, plug in 3 for n. On top of the sigma notation it says infinity for the number of terms. Since the Dobinski Formula is a geometric sequence where the nth term can be found through a formula the infinity can be changed to the nth term you re trying to find in this case 3, so the summation only has 3 terms and so the first term is O.
The base of all natural logarithms is e which is then multiplied by the sum of all terms. There was k factorial to divide the number of different ways each of the elements could be rearranged. The first term of the summation is O because the first term of the bell number starts with O which equals 1. When this formula was solved by hand, a different set of numbers were generated. So the formula was written again in python to make sure if it wasn’t a human error. When this formula was run on a python compiler the result was 22 which is not the 4th bell number. It was generated through this procedure below.
Since the dobinski formula is derived from stirling numbers of the second kind an attempt was made to formulate them on python and then based on the numbers created a relationship was to be formulated but this method failed as well. Below is the attempted code written with help from the article wikipedia,binomial coefficients. # def sterling_number(n, k): if n=Oor k < O or k > n: return O # if k n or k return 1 # return # def stirling(n,k): eturn O; else: return + stirling(n-l ,k-l) Finally a correct code was written to find the formula for the nth bell number. ef get_nth_bell_number(number): return bell_number_calculator(number, number) def bell_number_calculator(i, J): elif J = return bell_number_calculator(i – l,i-l) return bell_number_calculator(i – 1 print get_nth_bell_number(4) A few definitions should be known in order to understand this formula. A selection is usually referred to as if-then-else, meaning that if a condition is try then return action x (return 1 for this case) and if not return action y. An algorithm is a set of rules given to a computer, usually they are built in like “print”.
A stack is a collection of multiple elements. Recursive means to do something over and over again on the same structure. When the formula above was first written, there was no print get_nth_bell_number. But when testing the formula whenever in the bell_number_calculator it produced the specific bell number. The definition of means that when values for (i, J) is plugged in a certain value will be given in this case the bell number. If the i value is 1 then the answer iven will be 1.