## Monday, 29 August 2016

### Chapter 8 Exercise 25, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

*8.25 (Markov matrix) An n * n matrix is called a positive Markov matrix if each element is positive and the sum of the elements in each column is 1. Write the following method to check whether a matrix is a Markov matrix.

public static boolean isMarkovMatrix(double[][] m)

Write a test program that prompts the user to enter a 3 * 3 matrix of double values and tests whether it is a Markov matrix. Here are sample runs:

Enter a 3-by-3 matrix row by row:
0.15 0.875 0.375
0.55 0.005 0.225
0.30 0.12 0.4
It is a Markov matrix

Enter a 3-by-3 matrix row by row:
0.95 -0.875 0.375
0.65 0.005 0.225
0.30 0.22 -0.4
It is not a Markov matrix
import java.util.Scanner;

public class ProgrammingEx5_25 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a 3-by-3 matrix row by row:");
double[][] n = new double[3][3];

for (int i = 0; i < n.length; i++) {
for (int j = 0; j < n[i].length; j++) {
n[i][j] = input.nextDouble();
}
}

String s = "";
if (!isMarkovMatrix(n)) {
s = " not";
}
System.out.println("It is" + s + " a Markov matrix");
}

public static boolean isMarkovMatrix(double[][] m) {
for (int i = 0; i < m.length; i++) {
double sum = 0;
for (int j = 0; j < m.length; j++) {
if (m[j][i] < 0) {
return false;
}
sum += m[j][i];
}
if (sum != 1.0) {
return false;
}
}

return true;
}

}