public class Main {
public static void main(String[] args) {
// 邻接矩阵
int adjacency[][] = { { 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 0 }, { 1, 0, 0, 1, 0 }, { 0, 0, 1, 0, 1 },
{ 1, 0, 0, 0, 0 } };
// 可达矩阵
int reachability[][] = null;
System.out.println("邻接矩阵:");
show(adjacency);
reachability = addUnit(adjacency);
show(reachability);
int n = 0;
do {
n++;
reachability = square(reachability);
reachability=format(reachability);
System.out.println("第"+n+"次布尔运算");
show(reachability);
} while (!equals(reachability, format(square(reachability))));
System.out.println("可达矩阵:");
show(reachability);
}
// 矩阵+单位矩阵
public static int[][] addUnit(int primitive[]