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 math, sequtils, strutils
|
||||
|
||||
type SquareMatrix = seq[seq[Natural]]
|
||||
|
||||
func newSquareMatrix(n: Positive): SquareMatrix =
|
||||
## Create a square matrix.
|
||||
newSeqWith(n, newSeq[Natural](n))
|
||||
|
||||
func pascalUpperTriangular(n: Positive): SquareMatrix =
|
||||
## Create an upper Pascal matrix.
|
||||
result = newSquareMatrix(n)
|
||||
for i in 0..<n:
|
||||
for j in i..<n:
|
||||
result[i][j] = binom(j, i)
|
||||
|
||||
func pascalLowerTriangular(n: Positive): SquareMatrix =
|
||||
## Create a lower Pascal matrix.
|
||||
result = newSquareMatrix(n)
|
||||
for i in 0..<n:
|
||||
for j in i..<n:
|
||||
result[j][i] = binom(j, i)
|
||||
|
||||
func pascalSymmetric(n: Positive): SquareMatrix =
|
||||
## Create a symmetric Pascal matrix.
|
||||
result = newSquareMatrix(n)
|
||||
for i in 0..<n:
|
||||
for j in 0..<n:
|
||||
result[i][j] = binom(i + j, i)
|
||||
|
||||
proc print(m: SquareMatrix) =
|
||||
## Print a square matrix.
|
||||
let matMax = max(m.mapIt(max(it)))
|
||||
let length = ($matMax).len
|
||||
for i in 0..m.high:
|
||||
echo "| ", m[i].mapIt(($it).align(length)).join(" "), " |"
|
||||
|
||||
echo "Upper:"
|
||||
print pascalUpperTriangular(5)
|
||||
echo "\nLower:"
|
||||
print pascalLowerTriangular(5)
|
||||
echo "\nSymmetric:"
|
||||
print pascalSymmetric(5)
|
||||
Loading…
Add table
Add a link
Reference in a new issue