RosettaCodeData/Task/Pascal-matrix-generation/Pluto/pascal-matrix-generation.pluto
2026-04-30 12:34:36 -04:00

32 lines
787 B
Text

require "matrix"
local int = require "int"
local function pascal_upper_triangular(n)
local m = {}
for i = 1, n do
m[i] = {}
for j = 1, n do m[i][j] = (j >= i) ? int.binomial(j - 1, i - 1) : 0 end
end
return matrix.from(m)
end
local function pascal_symmetric(n)
local m = {}
for i = 1, n do
m[i] = {}
for j = 1, n do m[i][j] = int.binomial(i + j - 2, i - 1) end
end
return matrix.from(m)
end
local function pascal_lower_triangular(n)
return pascal_symmetric(n):cholesky()
end
local n = 5
print("Pascal upper-triangular matrix:")
print(pascal_upper_triangular(n))
print("\nPascal lower-triangular matrix:")
print(pascal_lower_triangular(n):format("%d"))
print("\nPascal symmetric matrix:")
print(pascal_symmetric(n))