Skip to content

Commit 2e50255

Browse files
committed
fix merge conflict
1 parent 4a4298c commit 2e50255

File tree

4 files changed

+1
-143
lines changed

4 files changed

+1
-143
lines changed

src/main/java/com/thealgorithms/maths/GoldbachConjecture.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.thealgorithms.maths;
22

3-
import static com.thealgorithms.maths.PrimeCheck.isPrime;
3+
import static com.thealgorithms.maths.Prime.PrimeCheck.isPrime;
44

55
/**
66
* This is a representation of the unsolved problem of Goldbach's Projection, according to which every
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package com.thealgorithms.matrix;
22

33
// Problem Statement
4-
<<<<<<< HEAD
54

65
import com.thealgorithms.matrix.utils.MatrixUtil;
76

8-
=======
9-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
107
/*
118
We have given an array of m x n (where m is the number of rows and n is the number of columns).
129
Print the new matrix in such a way that the new matrix is the mirror image of the original matrix.
@@ -23,56 +20,17 @@ public final class MirrorOfMatrix {
2320
private MirrorOfMatrix() {
2421
}
2522

26-
<<<<<<< HEAD
2723
public static double[][] mirrorMatrix(final double[][] originalMatrix) {
2824
MatrixUtil.validateInputMatrix(originalMatrix);
29-
=======
30-
public static int[][] mirrorMatrix(final int[][] originalMatrix) {
31-
if (originalMatrix == null) {
32-
// Handle invalid input
33-
return null;
34-
}
35-
if (originalMatrix.length == 0) {
36-
return new int[0][0];
37-
}
38-
39-
checkInput(originalMatrix);
40-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
4125

4226
int numRows = originalMatrix.length;
4327
int numCols = originalMatrix[0].length;
4428

45-
<<<<<<< HEAD
4629
double[][] mirroredMatrix = new double[numRows][numCols];
4730

4831
for (int i = 0; i < numRows; i++) {
4932
mirroredMatrix[i] = MatrixUtil.reverseRow(originalMatrix[i]);
5033
}
5134
return mirroredMatrix;
5235
}
53-
=======
54-
int[][] mirroredMatrix = new int[numRows][numCols];
55-
56-
for (int i = 0; i < numRows; i++) {
57-
mirroredMatrix[i] = reverseRow(originalMatrix[i]);
58-
}
59-
return mirroredMatrix;
60-
}
61-
private static int[] reverseRow(final int[] inRow) {
62-
int[] res = new int[inRow.length];
63-
for (int i = 0; i < inRow.length; ++i) {
64-
res[i] = inRow[inRow.length - 1 - i];
65-
}
66-
return res;
67-
}
68-
69-
private static void checkInput(final int[][] matrix) {
70-
// Check if all rows have the same number of columns
71-
for (int i = 1; i < matrix.length; i++) {
72-
if (matrix[i].length != matrix[0].length) {
73-
throw new IllegalArgumentException("The input is not a matrix.");
74-
}
75-
}
76-
}
77-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
7836
}
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
package com.thealgorithms.matrix.matrixexponentiation;
22

3-
<<<<<<< HEAD
43
import java.math.BigDecimal;
54
import java.util.Scanner;
65

76
import com.thealgorithms.matrix.utils.MatrixUtil;
87

9-
=======
10-
import java.util.Scanner;
11-
12-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
138
/**
149
* @author Anirudh Buvanesh (https://github.com/anirudhb11) For more information
1510
* see https://www.geeksforgeeks.org/matrix-exponentiation/
@@ -20,49 +15,13 @@ private Fibonacci() {
2015
}
2116

2217
// Exponentiation matrix for Fibonacci sequence
23-
<<<<<<< HEAD
2418
private static final BigDecimal ONE = BigDecimal.valueOf(1);
2519
private static final BigDecimal ZERO = BigDecimal.valueOf(0);
2620

2721
private static final BigDecimal[][] FIB_MATRIX = {{ONE, ONE}, {ONE, ZERO}};
2822
private static final BigDecimal[][] IDENTITY_MATRIX = {{ONE, ZERO}, {ZERO, ONE}};
2923
// First 2 fibonacci numbers
3024
private static final BigDecimal[][] BASE_FIB_NUMBERS = {{ONE}, {ZERO}};
31-
=======
32-
private static final int[][] FIB_MATRIX = {{1, 1}, {1, 0}};
33-
private static final int[][] IDENTITY_MATRIX = {{1, 0}, {0, 1}};
34-
// First 2 fibonacci numbers
35-
private static final int[][] BASE_FIB_NUMBERS = {{1}, {0}};
36-
37-
/**
38-
* Performs multiplication of 2 matrices
39-
*
40-
* @param matrix1
41-
* @param matrix2
42-
* @return The product of matrix1 and matrix2
43-
*/
44-
private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) {
45-
// Check if matrices passed can be multiplied
46-
int rowsInMatrix1 = matrix1.length;
47-
int columnsInMatrix1 = matrix1[0].length;
48-
49-
int rowsInMatrix2 = matrix2.length;
50-
int columnsInMatrix2 = matrix2[0].length;
51-
52-
assert columnsInMatrix1 == rowsInMatrix2;
53-
int[][] product = new int[rowsInMatrix1][columnsInMatrix2];
54-
for (int rowIndex = 0; rowIndex < rowsInMatrix1; rowIndex++) {
55-
for (int colIndex = 0; colIndex < columnsInMatrix2; colIndex++) {
56-
int matrixEntry = 0;
57-
for (int intermediateIndex = 0; intermediateIndex < columnsInMatrix1; intermediateIndex++) {
58-
matrixEntry += matrix1[rowIndex][intermediateIndex] * matrix2[intermediateIndex][colIndex];
59-
}
60-
product[rowIndex][colIndex] = matrixEntry;
61-
}
62-
}
63-
return product;
64-
}
65-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
6625

6726
/**
6827
* Calculates the fibonacci number using matrix exponentiaition technique
@@ -71,7 +30,6 @@ private static int[][] matrixMultiplication(int[][] matrix1, int[][] matrix2) {
7130
* Outputs the nth * fibonacci number
7231
* @return a 2 X 1 array as { {F_n+1}, {F_n} }
7332
*/
74-
<<<<<<< HEAD
7533
public static BigDecimal[][] fib(int n) {
7634
if (n == 0) {
7735
return IDENTITY_MATRIX;
@@ -82,18 +40,6 @@ public static BigDecimal[][] fib(int n) {
8240
return matrixExpResult;
8341
} else {
8442
return MatrixUtil.multiply(FIB_MATRIX, matrixExpResult).get();
85-
=======
86-
public static int[][] fib(int n) {
87-
if (n == 0) {
88-
return IDENTITY_MATRIX;
89-
} else {
90-
int[][] cachedResult = fib(n / 2);
91-
int[][] matrixExpResult = matrixMultiplication(cachedResult, cachedResult);
92-
if (n % 2 == 0) {
93-
return matrixExpResult;
94-
} else {
95-
return matrixMultiplication(FIB_MATRIX, matrixExpResult);
96-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
9743
}
9844
}
9945
}
@@ -102,12 +48,7 @@ public static void main(String[] args) {
10248
// Returns [0, 1, 1, 2, 3, 5 ..] for n = [0, 1, 2, 3, 4, 5.. ]
10349
Scanner sc = new Scanner(System.in);
10450
int n = sc.nextInt();
105-
<<<<<<< HEAD
10651
BigDecimal[][] result = MatrixUtil.multiply(fib(n), BASE_FIB_NUMBERS).get();
107-
=======
108-
int[][] result = matrixMultiplication(fib(n), BASE_FIB_NUMBERS);
109-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
110-
System.out.println("Fib(" + n + ") = " + result[1][0]);
11152
sc.close();
11253
}
11354
}
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,51 @@
11
package com.thealgorithms.matrix;
22

33
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4-
<<<<<<< HEAD
54
import static org.junit.jupiter.api.Assertions.assertEquals;
65
import static org.junit.jupiter.api.Assertions.assertThrows;
7-
=======
8-
import static org.junit.jupiter.api.Assertions.assertNull;
9-
import static org.junit.jupiter.api.Assertions.assertThrows;
10-
11-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
126
import org.junit.jupiter.api.Test;
137

148
class MirrorOfMatrixTest {
159

1610
@Test
1711
void testMirrorMatrixRegularMatrix() {
18-
<<<<<<< HEAD
1912
double[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
2013
double[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}};
2114
double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
22-
=======
23-
int[][] originalMatrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
24-
int[][] expectedMirrorMatrix = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}};
25-
int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
26-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
2715
assertArrayEquals(expectedMirrorMatrix, mirroredMatrix);
2816
}
2917

3018
@Test
3119
void testMirrorMatrixEmptyMatrix() {
32-
<<<<<<< HEAD
3320
double[][] originalMatrix = {};
3421
Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix));
3522
assertEquals("The input matrix cannot be empty", e.getMessage());
36-
=======
37-
int[][] originalMatrix = {};
38-
int[][] expectedMirrorMatrix = {};
39-
int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
40-
assertArrayEquals(expectedMirrorMatrix, mirroredMatrix);
41-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
4223
}
4324

4425
@Test
4526
void testMirrorMatrixSingleElementMatrix() {
46-
<<<<<<< HEAD
4727
double[][] originalMatrix = {{42}};
4828
double[][] expectedMirrorMatrix = {{42}};
4929
double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
50-
=======
51-
int[][] originalMatrix = {{42}};
52-
int[][] expectedMirrorMatrix = {{42}};
53-
int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
54-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
5530
assertArrayEquals(expectedMirrorMatrix, mirroredMatrix);
5631
}
5732

5833
@Test
5934
void testMirrorMatrixMultipleRowsOneColumnMatrix() {
60-
<<<<<<< HEAD
6135
double[][] originalMatrix = {{1}, {2}, {3}, {4}};
6236
double[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}};
6337
double[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
64-
=======
65-
int[][] originalMatrix = {{1}, {2}, {3}, {4}};
66-
int[][] expectedMirrorMatrix = {{1}, {2}, {3}, {4}};
67-
int[][] mirroredMatrix = MirrorOfMatrix.mirrorMatrix(originalMatrix);
68-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
6938
assertArrayEquals(expectedMirrorMatrix, mirroredMatrix);
7039
}
7140

7241
@Test
7342
void testMirrorMatrixNullInput() {
74-
<<<<<<< HEAD
7543
double[][] originalMatrix = null;
7644
Exception e = assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(originalMatrix));
7745
assertEquals("The input matrix cannot be null", e.getMessage()); }
7846

7947
@Test
8048
void testMirrorMatrixThrows() {
8149
assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new double[][] {{1}, {2, 3}}));
82-
=======
83-
int[][] originalMatrix = null;
84-
assertNull(MirrorOfMatrix.mirrorMatrix(originalMatrix));
85-
}
86-
87-
@Test
88-
void testMirrotMarixThrows() {
89-
assertThrows(IllegalArgumentException.class, () -> MirrorOfMatrix.mirrorMatrix(new int[][] {{1}, {2, 3}}));
90-
>>>>>>> 754bf6c5f8f55b758bdee2667f6cadf4f0ab659f
9150
}
9251
}

0 commit comments

Comments
 (0)