From 5b8bcf0c63fb5aff6a0dbe6f6899e1511f9034fb Mon Sep 17 00:00:00 2001 From: Ojasva Jain <44553464+ojasva@users.noreply.github.com> Date: Mon, 11 Oct 2021 16:21:26 +0530 Subject: [PATCH] Add Determinant Of a Matrix [Hacktoberfest] (#2508) --- Maths/DeterminantOfMatrix.java | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Maths/DeterminantOfMatrix.java diff --git a/Maths/DeterminantOfMatrix.java b/Maths/DeterminantOfMatrix.java new file mode 100644 index 000000000..f5ed09ca1 --- /dev/null +++ b/Maths/DeterminantOfMatrix.java @@ -0,0 +1,61 @@ +package Maths; +import java.util.*; + +/* +* @author Ojasva Jain +* Determinant of Matrix Wikipedia link : https://en.wikipedia.org/wiki/Determinant +*/ +public class DeterminantOfMatrix +{ + // Determinant calculator + //@return determinant of the input matrix + static int determinant(int a[][], int n) + { + int det = 0, sign = 1, p = 0, q = 0; + if(n==1) + { + det = a[0][0]; + } + else + { + int b[][] = new int[n-1][n-1]; + for(int x = 0 ; x < n ; x++) + { + p=0;q=0; + for(int i = 1;i < n; i++) + { + for(int j = 0; j < n;j++) + { + if(j != x) + { + b[p][q++] = a[i][j]; + if(q % (n-1) == 0) + { + p++; + q=0; + } + } + } + } + det = det + a[0][x] *determinant(b, n-1) * sign; + sign = -sign; + } + } + return det; + } + //Driver Method + public static void main(String [] args){ + Scanner in = new Scanner(System.in); + //Input Matrix + System.out.println("Enter matrix size (Square matrix only)"); + int n = in.nextInt(); + System.out.println("Enter matrix"); + int a [][] = new int [n][n]; + for(int i=0;i