Skip to content
Related Articles

Related Articles

Pascal Matrix
  • Last Updated : 16 Apr, 2021

In mathematics, particularly in matrix theory and combinatorics, the Pascal Matrix is an infinite matrix containing the 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++




// CPP Program to print symmetric pascal matrix.
#include <bits/stdc++.h>
using namespace std;
 
// Print Pascal Matrix
void printpascalmatrix(int n)
{
    int C[2 * n + 1][2 * n + 1] = { 0 };
 
    // Calculate value of Binomial Coefficient in
    // bottom up manner
    for (int i = 0; i <= 2 * n; i++) {
        for (int j = 0; j <= min(i, 2 * n); j++) {
 
            // Base Cases
            if (j == 0 || j == i)
                C[i][j] = 1;
 
            // Calculate value using previously
            // stored values
            else
                C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
        }
    }
 
    // Printing the pascal matrix
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << C[i + j][i] << " ";
 
        cout << endl;
    }
}
 
// Driven Program
int main()
{
    int n = 5;
    printpascalmatrix(n);
    return 0;
}

Java




// java Program to print
// symmetric pascal matrix.
import java.io.*;
 
class GFG
{
    // Print Pascal Matrix
    static void printpascalmatrix(int n)
    {
        int C[][] = new int[2 * n + 1][2 * n + 1];
     
        // Calculate value of Binomial Coefficient in
        // bottom up manner
        for (int i = 0; i <= 2 * n; i++)
        {
            for (int j = 0; j <= Math.min(i, 2 * n); j++)
            {
                // Base Cases
                if (j == 0 || j == i)
                    C[i][j] = 1;
     
                // Calculate value using previously
                // stored values
                else
                    C[i][j] = C[i - 1][j - 1]
                              + C[i - 1][j];
            }
        }
     
        // Printing the pascal matrix
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
                System.out.print ( C[i + j][i] +" ");
                System.out.println();
         
        }
    }
     
    // Driven Program
    public static void main (String[] args)
    {
        int n = 5;
        printpascalmatrix(n);
     
    }
}
 
// This code is contributed by vt_m.

Python3




# Python3 Program to print
# symmetric pascal matrix.
 
# Print Pascal Matrix
def printpascalmatrix(n):
    C = [[0 for x in range(2 * n + 1)]
            for y in range(2 * n + 1)]
             
    # Calculate value of
    # Binomial Coefficient
    # in ottom up manner
    for i in range(2 * n + 1):
        for j in range(min(i, 2 * n) + 1):
             
            # Base Cases
            if (j == 0 or j == i):
                C[i][j] = 1;
                 
            # Calculate value
            # using previously
            # stored values
            else:
                C[i][j] = (C[i - 1][j - 1] +
                           C[i - 1][j]);
     
    # Printing the
    # pascal matrix
    for i in range(n):
        for j in range(n):
            print(C[i + j][i],
                   end = " ");
        print();
     
# Driver Code
n = 5;
printpascalmatrix(n);
 
# This code is contributed by mits

C#




// C# program to print
// symmetric pascal matrix.
using System;
 
class GFG {
     
    // Print Pascal Matrix
    static void printpascalmatrix(int n)
    {
        int[, ] C = new int[2 * n + 1, 2 * n + 1];
 
        // Calculate value of Binomial Coefficient
        // in bottom up manner
        for (int i = 0; i <= 2 * n; i++) {
             
            for (int j = 0; j <= Math.Min(i, 2 * n); j++) {
                 
                // Base Cases
                if (j == 0 || j == i)
                    C[i, j] = 1;
 
                // Calculate value using previously
                // stored values
                else
                    C[i, j] = C[i - 1, j - 1]
                            + C[i - 1, j];
            }
        }
 
        // Printing the pascal matrix
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++)
                Console.Write(C[i + j, i] + " ");
            Console.WriteLine();
        }
    }
 
    // Driven Program
    public static void Main()
    {
        int n = 5;
        printpascalmatrix(n);
    }
}
 
// This code is contributed by vt_m.

PHP




<?php
// PHP Program to print symmetric
// pascal matrix.
 
// Print Pascal Matrix
function printpascalmatrix($n)
{
    $C[2 * $n + 1][2 * $n + 1] = (0);
 
    // Calculate value of Binomial
    // Coefficient in ottom up manner
    for ($i = 0; $i <= 2 * $n; $i++)
    {
        for ($j = 0; $j <= min($i, 2 * $n); $j++)
        {
 
            // Base Cases
            if ($j == 0 || $j == $i)
                $C[$i][$j] = 1;
 
            // Calculate value
            // using previously
            // stored values
            else
                $C[$i][$j] = $C[$i - 1][$j - 1] +
                                 $C[$i - 1][$j];
        }
    }
 
    // Printing the pascal matrix
    for ($i = 0; $i < $n; $i++) {
        for ( $j = 0; $j < $n; $j++)
            echo $C[$i + $j][$i], " ";
 
        echo "\n";
    }
}
     
    // Driver Code
    $n = 5;
    printpascalmatrix($n);
 
// This code is contributed by aj_36
?>

Javascript




<script>
 
// JavaScript Program to print
// symmetric pascal matrix.
 
    // Print Pascal Matrix
    function printpascalmatrix(n)
    {
        let C = new Array(2 * n + 1);
         
        // Loop to create 2D array using 1D array
        for (var i = 0; i < C.length; i++) {
            C[i] = new Array(2);
        }
       
        // Calculate value of Binomial Coefficient in
        // bottom up manner
        for (let i = 0; i <= 2 * n; i++)
        {
            for (let j = 0; j <= Math.min(i, 2 * n); j++)
            {
                // Base Cases
                if (j == 0 || j == i)
                    C[i][j] = 1;
       
                // Calculate value using previously
                // stored values
                else
                    C[i][j] = C[i - 1][j - 1]
                              + C[i - 1][j];
            }
        }
       
        // Printing the pascal matrix
        for (let i = 0; i < n; i++)
        {
            for (let j = 0; j < n; j++)
                document.write( C[i + j][i] +" ");
                document.write("<br/>");
           
        }
    }
 
 
// Driver code
         
        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

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :