22 lines
578 B
Text
22 lines
578 B
Text
local int = require "int"
|
|
local fmt = require "fmt"
|
|
|
|
$alias fact = int.factorial
|
|
|
|
local function lah(n, k)
|
|
if k == 1 then return fact(n) end
|
|
if k == n then return 1 end
|
|
if k > n then return 0 end
|
|
if k < 1 or n < 1 then return 0 end
|
|
return (fact(n) * fact(n - 1)) // (fact(k) * fact(k - 1)) // fact(n - k)
|
|
end
|
|
|
|
print("Unsigned Lah numbers: l(n, k):")
|
|
io.write("n/k")
|
|
for i = 0, 12 do fmt.write("%10d ", i) end
|
|
print("\n" .. string.rep("-", 145))
|
|
for n = 0, 12 do
|
|
fmt.write("%2d ", n)
|
|
for k = 0, n do fmt.write("%10d ", lah(n, k)) end
|
|
print()
|
|
end
|