$$T_n = \sum_{i=1}^n {i}$$

$$n! = \prod_{i=1}^n {i}$$

There are also raising and falling versions of the factorial:

$$x^{\overline n} = \prod_{i=0}^n {x+i}$$

$$x^{\underline n} = \prod_{i=0}^n {x-i}$$

Here is the corresponding code:

(def triangular-number (let [sum (partial apply +)] (comp sum range inc))) (def factorial (let [product (partial apply *) upto (comp (partial map inc) range)] (comp product upto))) (defn rising-factorial [x n] (apply * (map (partial + x) (range 0 n)))) (defn falling-factorial [x n] (apply * (map (partial - x) (range 0 n)))) (defn choose [n k] (/ (falling-factorial n k) (factorial k))) (defn multichoose [n k] (/ (rising-factorial n k) (factorial k)))

The multichoose function is incredibly important because all polytopic numbers, including triangular-numbers and tetrahedral numbers can be expressed with it.

(def triangular-number #(multichoose % 2)) (def tetrahedral-number #(multichoose % 3)) (def pentatope-number #(multichoose % 4))

This is the relationship between factorials and triangular-numbers. Triangular-numbers can be expressed in terms of factorials probably because the higher hyper operator, multiplication, encodes more information then addition.

## No comments:

## Post a Comment