Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
|||
import "/fmt" for Fmt
|
||||
import "/math" for Int
|
||||
import "/matrix" for Matrix
|
||||
|
||||
var binomial = Fn.new { |n, k|
|
||||
if (n == k) return 1
|
||||
var prod = 1
|
||||
var i = n - k + 1
|
||||
while (i <= n) {
|
||||
prod = prod * i
|
||||
i = i + 1
|
||||
}
|
||||
return prod / Int.factorial(k)
|
||||
}
|
||||
|
||||
var pascalUpperTriangular = Fn.new { |n|
|
||||
var m = List.filled(n, null)
|
||||
for (i in 0...n) {
|
||||
m[i] = List.filled(n, 0)
|
||||
for (j in 0...n) m[i][j] = binomial.call(j, i)
|
||||
}
|
||||
return Matrix.new(m)
|
||||
}
|
||||
|
||||
var pascalSymmetric = Fn.new { |n|
|
||||
var m = List.filled(n, null)
|
||||
for (i in 0...n) {
|
||||
m[i] = List.filled(n, 0)
|
||||
for (j in 0...n) m[i][j] = binomial.call(i+j, i)
|
||||
}
|
||||
return Matrix.new(m)
|
||||
}
|
||||
|
||||
var pascalLowerTriangular = Fn.new { |n| pascalSymmetric.call(n).cholesky() }
|
||||
|
||||
var n = 5
|
||||
System.print("Pascal upper-triangular matrix:")
|
||||
Fmt.mprint(pascalUpperTriangular.call(n), 2, 0)
|
||||
System.print("\nPascal lower-triangular matrix:")
|
||||
Fmt.mprint(pascalLowerTriangular.call(n), 2, 0)
|
||||
System.print("\nPascal symmetric matrix:")
|
||||
Fmt.mprint(pascalSymmetric.call(n), 2, 0)
|
||||
Loading…
Add table
Add a link
Reference in a new issue