In: Computer Science
Write a program that prompts the user to enter a 3 x 3 matrix of double values and tests whether it is a positive Markov matrix. There will be two methods which will be called from the main method: public static double [] [] createArray() 1. Creates a 3 by 3 two dimensional array of doubles 2. Prompts the user for values as shown in the sample run 3. Stores the numbers in the array in the order entered 4. Returns the array to the main method public boolean isMarkovMatrix(double [][] matrix) 1. Returns false if any value in the array is negative 2. Prints the sum of each column in the array 3. Returns false if any the sum of any of the columns is not equal to 1.0 4. Otherwise, it returns true. Sample Program running: Enter a 3 x 3 matrix by row 0.15 0.875 0.375 0.55 0.005 0.225 0.30 0.12 0.4 The sum of the columns 1.0 1.0 1.0 It is a Markov matrix Enter a 3 x 3 matrix by row -0.2 0.875 0.375 0.75 0.005 0.225 0.45 0.12 0.4 The sum of the columns 1.0 1.0 1.0 It is not a Markov matrix The program must display the sum of EACH INDIVIDUAL column A response in Eclipse Java would be much appreciated. Thank you in advance
import java.util.Scanner;
public class MarkovMatrix {
private static double[][] createArray() {
Scanner sc = new Scanner(System.in);
double [][]mat = new double[3][3];
System.out.print("Enter a 3 x 3 matrix by row: "); // take array
input
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat.length; j++) {
mat[i][j] = Double.parseDouble(sc.next());
}
}
return mat;
}
private static boolean isMarkovMatrix(double[][] matrix) {
boolean flag = true;
System.out.print("The sum of the columns: ");
for (int j = 0; j < matrix.length; j++){
double sum = 0;
for (int i = 0; i < matrix.length; i++) {
if(matrix[i][j] < 0){ // check if any value is negative
flag = false;
}
sum += matrix[i][j];
}
if(sum!=1) flag = false; // check if sum not equal 1
System.out.print(sum+" ");
}
System.out.println("");
return flag;
}
public static void main(String[] args) {
double [][]matrix = createArray();
if(isMarkovMatrix(matrix)){
System.out.println("It is a Markov matrix");
}else{
System.out.println("It is not a Markov matrix ");
}
}
}
/* OUTPUT */
/* PLEASE UPVOTE */