General tetrahedral numbers
Start with a list of ones:
1, 1, 1, 1, 1, ...
Taking the partial sums of this sequence gives consecutive numbers. That is, the nth number of the new series is the sum of the first n terms of the previous series.
1, 2, 3, 4, 5, ...
If we take partial sums again, we get the triangular numbers.
1, 3, 6, 10, 15, ...
They're called triangle numbers because if we arrange coins in a triangle, with n on a side, the total number of coins is the nth triangular number.
If we repeat the process again, we get the tetrahedral numbers.
1, 4, 10, 20, 35, ...
The nth tetrahedral number is the number of cannon balls is a tetrahedral stack, with each layer of the stack being a triangle.
We can produce the examples above in Python using the cumsum (cumulative sum) function on NumPy arrays.
>>> import numpy as np >>> x = np.ones(5, int) >>> x array([1, 1, 1, 1, 1]) >>> x.cumsum() array([1, 2, 3, 4, 5]) >>> x.cumsum().cumsum() array([ 1, 3, 6, 10, 15]) >>> x.cumsum().cumsum().cumsum() array([ 1, 4, 10, 20, 35])
We could continue this further, taking tetrahedral numbers of degree k. The sequences above could be called the tetrahedral numbers of degree k for k = 0, 1, 2, and 3.
Here's Python code to find the nth tetrahedral number of a given dimension.
def tetrahedral(n, dim): x = np.ones(n, int) for _ in range(dim): x = x.cumsum() return x[-1]
It turns out that
and so we could rewrite the code above more simply as
from math import comb def tetrahedral(n, dim): return comb(n + dim - 1, dim)Related postsThe post General tetrahedral numbers first appeared on John D. Cook.