Skip to content

TetrahedralNumbers ​

The tetrahedral numbers 1,4,10,20,…1, 4, 10, 20, … — (n+23)\binom{n+2}{3} — stacked triangles, partial sums of the triangular numbers.

TetrahedralNumbers(n+23)\binom{n+2}{3} for n=1,2,3,…n = 1, 2, 3, ….

Domain: Collections

Details
  • A lazy indexed collection: Count(TetrahedralNumbers)=+∞Count(TetrahedralNumbers) = +\infty, and At(TetrahedralNumbers,k)=(k+23)At(TetrahedralNumbers, k) = \binom{k+2}{3} unranks in closed form -- At(TetrahedralNumbers,5)=35At(TetrahedralNumbers, 5) = 35.
  • OEIS A000292.
  • Membership goes through Element by bisecting the monotone cubic for its exact root -- Element(35,TetrahedralNumbers)Element(35, TetrahedralNumbers) is true, Element(36,TetrahedralNumbers)Element(36, TetrahedralNumbers) is false.
  • TetrahedralNumbers(n)=∑i=1nTriangularNumbers(i)TetrahedralNumbers(n) = \sum_{i=1}^n TriangularNumbers(i); the 4-simplex case is PentatopeNumbers.

Definition

Epsil, as the implementation runs it.

count()

PositiveInfinity

unrank(_r)

Binomial(_r + 3, 3)

rank(_x)

Apply(
       (sq_at: integer) => sq_at if Binomial(sq_at + 3, 3) == _x else -1,
       Fold(Function(
                      sq_at + 2 ^ sq_b if Binomial(sq_at + 2 ^ sq_b + 3, 3) <=
                                          _x else sq_at,
                      sq_at,
                      sq_b,
                    ), 0, Range(Floor(Log(_x, 2)) + 1, 0, -1)),
     ) if True else -1

valid(_x)

Apply(
       (sq_at: integer) => Binomial(sq_at + 3, 3) == _x,
       Fold(Function(
                      sq_at + 2 ^ sq_b if Binomial(sq_at + 2 ^ sq_b + 3, 3) <=
                                          _x else sq_at,
                      sq_at,
                      sq_b,
                    ), 0, Range(Floor(Log(_x, 2)) + 1, 0, -1)),
     ) if True && _x >= 1 else False

Enumeration

Examples

1 more kept as data, checked against the oracles
About
Examples1
CrosswalkOEIS

See also: TriangularNumbers, PentatopeNumbers, Binomial, Count, At, Element