RosettaCodeData/Task/Pascal-matrix-generation/00-TASK.txt

46 lines
1.6 KiB
Plaintext

A pascal matrix is a two-dimensional square matrix holding numbers from &nbsp; [[Pascal's triangle]], &nbsp; also known as &nbsp; [[Evaluate binomial coefficients|binomial coefficients]] &nbsp; and which can be shown as &nbsp; <big><sup>n</sup>C<sub>r</sub>.</big>
Shown below are truncated &nbsp; 5-by-5 &nbsp; matrices &nbsp; M[i, j] &nbsp; for &nbsp; i,j &nbsp; in range &nbsp; 0..4. <br>
A Pascal upper-triangular matrix that is populated with &nbsp; <big><sup>j</sup>C<sub>i</sub>:</big>
<pre>
[[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]]
</pre>
A Pascal lower-triangular matrix that is populated with &nbsp; <big><sup>i</sup>C<sub>j</sub></big> &nbsp; (the transpose of the upper-triangular matrix):
<pre>
[[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]]
</pre>
A Pascal symmetric matrix that is populated with &nbsp; <big><sup>i+j</sup>C<sub>i</sub>:</big>
<pre>
[[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]]
</pre>
;Task:
Write functions capable of generating each of the three forms of &nbsp; n-by-n &nbsp; matrices.
Use those functions to display upper, lower, and symmetric Pascal &nbsp; 5-by-5 &nbsp; matrices on this page.
The output should distinguish between different matrices and the rows of each matrix &nbsp; (no showing a list of 25 numbers assuming the reader should split it into rows).
;Note:
The &nbsp; [[Cholesky decomposition]] &nbsp; of a Pascal symmetric matrix is the Pascal lower-triangle matrix of the same size.
<br><br>