Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5. import java.util.Vector;
  6.  
  7. public class MatrixAdd {
  8. public static void main(String[] args) throws FileNotFoundException {
  9. Scanner scanner1 = new Scanner(new File("matrix1.csv"));
  10. Scanner scanner2 = new Scanner(new File("matrix2.csv"));
  11.  
  12. Vector<Vector<Integer>> matrix1 = new Vector<Vector<Integer>>();
  13. Vector<Vector<Integer>> matrix2 = new Vector<Vector<Integer>>();
  14.  
  15. init(scanner1, matrix1);
  16. init(scanner2, matrix2);
  17.  
  18. if(matrix1.size() != matrix2.size() || matrix1.get(0).size() != matrix2.get(0).size()) {
  19. System.out.print("undefined");
  20. } else {
  21. Vector<Vector<Integer>> result = addTwoMatrix(matrix1, matrix2);
  22.  
  23. if(checkIfSymmetric(result)) {
  24. System.out.print("true");
  25. } else {
  26. System.out.print("false");
  27. }
  28. }
  29.  
  30. scanner1.close();
  31. }
  32.  
  33. private static boolean checkIfSymmetric(Vector<Vector<Integer>> result) {
  34. Vector<Vector<Integer>> transposedResult = transposeMatrix(result);
  35.  
  36. if(result.size() != transposedResult.size() || result.get(0).size() != transposedResult.get(0).size()) {
  37. return false;
  38. } else {
  39. for(int i = 0; i < result.size(); i++) {
  40. for(int j = 0; j < result.get(0).size(); j++) {
  41. if(result.get(i).get(j) != transposedResult.get(i).get(j)) {
  42. return false;
  43. }
  44. }
  45. }
  46. }
  47.  
  48. return true;
  49. }
  50.  
  51. private static Vector<Vector<Integer>> transposeMatrix(Vector<Vector<Integer>> result) {
  52. Vector<Vector<Integer>> transposedResult = new Vector<>();
  53.  
  54. for(int i = 0; i < result.get(0).size(); i++) {
  55. Vector<Integer> row = new Vector<Integer>();
  56. for(int j = 0; j < result.size(); j++) { // 1 2 3 1 0
  57. row.add(result.get(j).get(i));
  58. }
  59. transposedResult.add(row);
  60. }
  61.  
  62. return transposedResult;
  63. }
  64.  
  65. private static Vector<Vector<Integer>> addTwoMatrix(Vector<Vector<Integer>> matrix1, Vector<Vector<Integer>> matrix2) {
  66. Vector<Vector<Integer>> result = new Vector<>();
  67.  
  68. for(int i = 0; i < matrix1.size(); i++) {
  69. Vector<Integer> row = new Vector<Integer>();
  70. for(int j = 0; j < matrix1.get(i).size(); j++) {
  71. int val = matrix1.get(i).get(j) + matrix2.get(i).get(j);
  72. row.add(val);
  73. }
  74. result.add(row);
  75. }
  76.  
  77. return result;
  78. }
  79.  
  80. private static void init(Scanner scanner, Vector<Vector<Integer>> matrix) {
  81. int j = 0;
  82. while(scanner.hasNext()){
  83. Vector<Integer> row = new Vector<Integer>();
  84. String[] s = scanner.next().split(",");
  85.  
  86. int i = 0;
  87.  
  88. while(i < s.length) {
  89. row.add(Integer.parseInt(s[i]));
  90. i++;
  91. }
  92.  
  93. matrix.add(row);
  94. j++;
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement