Pascal Matrix
Last Updated :
13 Dec, 2022
In mathematics, particularly in matrix theory and combinatorics, the Pascal Matrix is an infinite matrix containing binomial coefficients as its elements. There are three ways to achieve this: as either an upper-triangular matrix, a lower-triangular matrix, or a symmetric matrix.
The 5 x 5 truncations of these are shown below:
The elements of the symmetric Pascal Matrix are the binomial coefficient, i.e
Given a positive integer n. The task is to print the Symmetric Pascal Matrix of size n x n.
Examples:
Input : n = 5
Output :
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
Below is the code to implement n x n symmetric pascal matrix:
C++
#include <bits/stdc++.h>
using namespace std;
void printpascalmatrix( int n)
{
int C[2 * n + 1][2 * n + 1] = { 0 };
for ( int i = 0; i <= 2 * n; i++) {
for ( int j = 0; j <= min(i, 2 * n); j++) {
if (j == 0 || j == i)
C[i][j] = 1;
else
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
for ( int i = 0; i < n; i++) {
for ( int j = 0; j < n; j++)
cout << C[i + j][i] << " " ;
cout << endl;
}
}
int main()
{
int n = 5;
printpascalmatrix(n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void printpascalmatrix( int n)
{
int C[][] = new int [ 2 * n + 1 ][ 2 * n + 1 ];
for ( int i = 0 ; i <= 2 * n; i++)
{
for ( int j = 0 ; j <= Math.min(i, 2 * n); j++)
{
if (j == 0 || j == i)
C[i][j] = 1 ;
else
C[i][j] = C[i - 1 ][j - 1 ]
+ C[i - 1 ][j];
}
}
for ( int i = 0 ; i < n; i++)
{
for ( int j = 0 ; j < n; j++)
System.out.print ( C[i + j][i] + " " );
System.out.println();
}
}
public static void main (String[] args)
{
int n = 5 ;
printpascalmatrix(n);
}
}
|
Python3
def printpascalmatrix(n):
C = [[ 0 for x in range ( 2 * n + 1 )]
for y in range ( 2 * n + 1 )]
for i in range ( 2 * n + 1 ):
for j in range ( min (i, 2 * n) + 1 ):
if (j = = 0 or j = = i):
C[i][j] = 1 ;
else :
C[i][j] = (C[i - 1 ][j - 1 ] +
C[i - 1 ][j]);
for i in range (n):
for j in range (n):
print (C[i + j][i],
end = " " );
print ();
n = 5 ;
printpascalmatrix(n);
|
C#
using System;
class GFG {
static void printpascalmatrix( int n)
{
int [, ] C = new int [2 * n + 1, 2 * n + 1];
for ( int i = 0; i <= 2 * n; i++) {
for ( int j = 0; j <= Math.Min(i, 2 * n); j++) {
if (j == 0 || j == i)
C[i, j] = 1;
else
C[i, j] = C[i - 1, j - 1]
+ C[i - 1, j];
}
}
for ( int i = 0; i < n; i++) {
for ( int j = 0; j < n; j++)
Console.Write(C[i + j, i] + " " );
Console.WriteLine();
}
}
public static void Main()
{
int n = 5;
printpascalmatrix(n);
}
}
|
PHP
<?php
function printpascalmatrix( $n )
{
$C [2 * $n + 1][2 * $n + 1] = (0);
for ( $i = 0; $i <= 2 * $n ; $i ++)
{
for ( $j = 0; $j <= min( $i , 2 * $n ); $j ++)
{
if ( $j == 0 || $j == $i )
$C [ $i ][ $j ] = 1;
else
$C [ $i ][ $j ] = $C [ $i - 1][ $j - 1] +
$C [ $i - 1][ $j ];
}
}
for ( $i = 0; $i < $n ; $i ++) {
for ( $j = 0; $j < $n ; $j ++)
echo $C [ $i + $j ][ $i ], " " ;
echo "\n" ;
}
}
$n = 5;
printpascalmatrix( $n );
?>
|
Javascript
<script>
function printpascalmatrix(n)
{
let C = new Array(2 * n + 1);
for ( var i = 0; i < C.length; i++) {
C[i] = new Array(2);
}
for (let i = 0; i <= 2 * n; i++)
{
for (let j = 0; j <= Math.min(i, 2 * n); j++)
{
if (j == 0 || j == i)
C[i][j] = 1;
else
C[i][j] = C[i - 1][j - 1]
+ C[i - 1][j];
}
}
for (let i = 0; i < n; i++)
{
for (let j = 0; j < n; j++)
document.write( C[i + j][i] + " " );
document.write( "<br/>" );
}
}
let n = 5;
printpascalmatrix(n);
</script>
|
Output
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
Time Complexity: O(N2)
Auxiliary Space: O(N2)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...