2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
55
Task/Matrix-arithmetic/Java/matrix-arithmetic-1.java
Normal file
55
Task/Matrix-arithmetic/Java/matrix-arithmetic-1.java
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import java.util.Scanner;
|
||||
|
||||
public class MatrixArithmetic {
|
||||
public static double[][] minor(double[][] a, int x, int y){
|
||||
int length = a.length-1;
|
||||
double[][] result = new double[length][length];
|
||||
for(int i=0;i<length;i++) for(int j=0;j<length;j++){
|
||||
if(i<x && j<y){
|
||||
result[i][j] = a[i][j];
|
||||
}else if(i>=x && j<y){
|
||||
result[i][j] = a[i+1][j];
|
||||
}else if(i<x && j>=y){
|
||||
result[i][j] = a[i][j+1];
|
||||
}else{ //i>x && j>y
|
||||
result[i][j] = a[i+1][j+1];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
public static double det(double[][] a){
|
||||
if(a.length == 1){
|
||||
return a[0][0];
|
||||
}else{
|
||||
int sign = 1;
|
||||
double sum = 0;
|
||||
for(int i=0;i<a.length;i++){
|
||||
sum += sign * a[0][i] * det(minor(a,0,i));
|
||||
sign *= -1;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
public static double perm(double[][] a){
|
||||
if(a.length == 1){
|
||||
return a[0][0];
|
||||
}else{
|
||||
double sum = 0;
|
||||
for(int i=0;i<a.length;i++){
|
||||
sum += a[0][i] * perm(minor(a,0,i));
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
public static void main(String args[]){
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int size = sc.nextInt();
|
||||
double[][] a = new double[size][size];
|
||||
for(int i=0;i<size;i++) for(int j=0;j<size;j++){
|
||||
a[i][j] = sc.nextDouble();
|
||||
}
|
||||
sc.close();
|
||||
System.out.println("Determinant: "+det(a));
|
||||
System.out.println("Permanent: "+perm(a));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue