19 lines
592 B
Text
19 lines
592 B
Text
func fact(n) =>
|
|
n is 0 ? 1 : (n^-1..<0).Fold(1, (acc, val) => acc * val)
|
|
|
|
func lah(n, k) {
|
|
return fact(n) when k is 1
|
|
return 1 when k == n
|
|
return 0 when k > n || k < 1 || n < 1
|
|
(fact(n) * fact(n - 1)) / (fact(k) * fact(k - 1)) / fact(n - k)
|
|
}
|
|
|
|
print("Unsigned Lah numbers: L(n, k):");
|
|
print("n/k ", terminator: "");
|
|
(0..12).ForEach(i => i >> "{0,10} ".Format >> print(terminator: ""))
|
|
print("")
|
|
(0..12).ForEach(row => {
|
|
row >> "{0,-3}".Format >> print(terminator: "")
|
|
(0..row).ForEach(i => lah(row, i) >> "{0,11}".Format >> print(terminator: ""))
|
|
print("")
|
|
})
|