Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,23 @@
|
|||
# Generic functions
|
||||
|
||||
# Note: 'transpose' is defined in recent versions of jq
|
||||
def transpose:
|
||||
if (.[0] | length) == 0 then []
|
||||
else [map(.[0])] + (map(.[1:]) | transpose)
|
||||
end ;
|
||||
|
||||
# Create an m x n matrix with init as the initial value
|
||||
def matrix(m; n; init):
|
||||
if m == 0 then []
|
||||
elif m == 1 then [range(0;n) | init]
|
||||
elif m > 0 then
|
||||
matrix(1;n;init) as $row
|
||||
| [range(0;m) | $row ]
|
||||
else error("matrix\(m);_;_) invalid")
|
||||
end ;
|
||||
|
||||
# A simple pretty-printer for a 2-d matrix
|
||||
def pp:
|
||||
def pad(n): tostring | (n - length) * " " + .;
|
||||
def row: reduce .[] as $x (""; . + ($x|pad(4)));
|
||||
reduce .[] as $row (""; . + "\n\($row|row)");
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# n is input
|
||||
def pascal_upper:
|
||||
. as $n
|
||||
| matrix($n; $n; 0)
|
||||
| .[0] = [range(0; $n) | 1 ]
|
||||
| reduce range(1; $n) as $i
|
||||
(.; reduce range($i; $n) as $j
|
||||
(.; .[$i][$j] = .[$i-1][$j-1] + .[$i][$j-1]) ) ;
|
||||
|
||||
def pascal_lower:
|
||||
pascal_upper | transpose ;
|
||||
|
||||
# n is input
|
||||
def pascal_symmetric:
|
||||
. as $n
|
||||
| matrix($n; $n; 1)
|
||||
| reduce range(1; $n) as $i
|
||||
(.; reduce range(1; $n) as $j
|
||||
(.; .[$i][$j] = .[$i-1][$j] + .[$i][$j-1]) ) ;
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
5
|
||||
| ("\nUpper:", (pascal_upper | pp),
|
||||
"\nLower:", (pascal_lower | pp),
|
||||
"\nSymmetric:", (pascal_symmetric | pp)
|
||||
)
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
$ jq -r -n -f Pascal_matrix_generation.jq
|
||||
|
||||
Upper:
|
||||
|
||||
1 1 1 1 1
|
||||
0 1 2 3 4
|
||||
0 0 1 3 6
|
||||
0 0 0 1 4
|
||||
0 0 0 0 1
|
||||
|
||||
Lower:
|
||||
|
||||
1 0 0 0 0
|
||||
1 1 0 0 0
|
||||
1 2 1 0 0
|
||||
1 3 3 1 0
|
||||
1 4 6 4 1
|
||||
|
||||
Symmetric:
|
||||
|
||||
1 1 1 1 1
|
||||
1 2 3 4 5
|
||||
1 3 6 10 15
|
||||
1 4 10 20 35
|
||||
1 5 15 35 70
|
||||
Loading…
Add table
Add a link
Reference in a new issue