离散数学中有一种求传递递包的算法及求一个矩阵的传递递包,具体算法是:
首先用一个k控制次数
如果存在一个e[ i ][ k]==1; 使得e[ k ] [ j ]=1; 我们就可以把矩阵在原来的基础上所对应的
e[ i ][ j ]=1
具体代码如下
package com.company;
public class Test {
static int[][] e = {
{0, 1, 1, 0},
{0, 0, 0, 0},
{0, 1, 0, 1},
{1, 0, 1, 0}
};
public static void main(String[] args) {
Warshell();
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(e[i][j] + " ");
}
System.out.println();
}
}
public static void Warshell() {
for (int k = 0; k < 4; k++) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (e[i][j] != 0) {
e[i][j] = 1;
} else if (e[i][k] != 0 && e[k][j] != 0) {
e[i][j] = 1;
}
}
}
}
}
}
运行结果如下