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++
// CPP Program to print symmetric pascal matrix.#include <bits/stdc++.h>using namespace std;// Print Pascal Matrixvoid 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 Programint 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 Matrixdef printpascalmatrix(n): C = [[0 for x in range(2 * n + 1)] for y in range(2 * n + 1)] # Calculate value of # Binomial Coefficient # in bottom 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 Coden = 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 Matrixfunction printpascalmatrix($n){ $C[2 * $n + 1][2 * $n + 1] = (0); // Calculate value of Binomial // Coefficient in bottom 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> |
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)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


… [Trackback]
[…] Read More on that Topic: geeksforgeeks.org/pascal-matrix/ […]