快速可达矩阵计算(先获得所有有序的回路,再进行一次Warshall法就可以)
论文写作或者计算需要帮助可发邮件到 hwstu # sohu.com 把 #替换成@,请说清来意,不必拐弯抹角,浪费相互之间的时间。
返回首页
此处输入要素的个数:
显示的是一个随机 12 * 12 的方阵
|
子 | 丑 | 寅 | 卯 | 辰 | 巳 | 午 | 未 | 申 | 酉 | 戌 | 亥 |
子 |
|
|
|
1 |
|
1 |
|
1 |
|
|
|
|
丑 |
|
|
1 |
|
|
|
|
|
|
|
|
1 |
寅 |
|
|
|
|
1 |
|
|
|
1 |
|
|
|
卯 |
|
|
|
|
|
|
|
1 |
|
|
|
|
辰 |
|
|
|
|
|
|
|
|
1 |
|
|
|
巳 |
|
|
1 |
|
|
|
|
|
|
1 |
|
|
午 |
|
|
|
|
1 |
|
|
1 |
|
|
|
|
未 |
|
|
|
|
|
|
|
|
|
1 |
|
|
申 |
|
|
|
|
1 |
|
1 |
|
|
1 |
|
|
酉 |
|
|
|
|
|
|
|
|
|
|
|
|
戌 |
|
|
|
|
|
|
|
|
|
|
|
|
亥 |
|
|
|
|
|
|
|
|
|
|
|
|
利用深搜算法获得所有环路,该环路的着色矩阵显示为
|
酉 |
未 |
卯 |
辰 |
午 |
申 |
寅 |
巳 |
子 |
亥 |
丑 |
戌 |
酉 | |
|
|
|
|
|
|
|
|
|
|
|
未 | 1 |
|
|
|
|
|
|
|
|
|
|
|
卯 | |
1 |
|
|
|
|
|
|
|
|
|
|
辰 | |
|
|
|
|
1 |
|
|
|
|
|
|
午 | |
1 |
|
1 |
|
|
|
|
|
|
|
|
申 | 1 |
|
|
1 |
1 |
|
|
|
|
|
|
|
寅 | |
|
|
1 |
|
1 |
|
|
|
|
|
|
巳 | 1 |
|
|
|
|
|
1 |
|
|
|
|
|
子 | |
1 |
1 |
|
|
|
|
1 |
|
|
|
|
亥 | |
|
|
|
|
|
|
|
|
|
|
|
丑 | |
|
|
|
|
|
1 |
|
|
1 |
|
|
戌 | |
|
|
|
|
|
|
|
|
|
|
|
得到了一个有序的环,所有环路,是一个有序图
根据层级由上往下进行计算,最上的层级为0
当前为:0 层,包含有 1 个要素
当前层的可达集合为 9
0层的可达集合为9 。
因此要素9可达集合为9 。
当前为:1 层,包含有 1 个要素
当前层的可达集合为 9,7
除了本层的要素还有9 开始处理9 指向层级的可达集合
处理完了9 得到的可达集合为 。
1层的可达集合为9,7 。
因此要素7可达集合为9,7 。
当前为:2 层,包含有 1 个要素
当前层的可达集合为 7,3
除了本层的要素还有7 开始处理7 指向层级的可达集合
处理完了7 得到的可达集合为9,7 。
2层的可达集合为7,3,9 。
因此要素3可达集合为7,3,9 。
当前为:3 层,包含有 3 个要素
当前层的可达集合为 4,6,9,7,8
除了本层的要素还有9,7 开始处理9,7 指向层级的可达集合
处理完了9,7 得到的可达集合为9,7 。
3层的可达集合为4,6,9,7,8 。
因此要素4可达集合为4,6,9,7,8 。
因此要素6可达集合为4,6,9,7,8 。
因此要素8可达集合为4,6,9,7,8 。
当前为:4 层,包含有 1 个要素
当前层的可达集合为 4,8,2
除了本层的要素还有4,8 开始处理4,8 指向层级的可达集合
处理完了4,8 得到的可达集合为4,6,9,7,8 。
4层的可达集合为4,8,2,6,9,7 。
因此要素2可达集合为4,8,2,6,9,7 。
当前为:5 层,包含有 1 个要素
当前层的可达集合为 2,9,5
除了本层的要素还有2,9 开始处理2,9 指向层级的可达集合
处理完了2,9 得到的可达集合为4,8,2,6,9,7 。
5层的可达集合为2,9,5,4,8,6,7 。
因此要素5可达集合为2,9,5,4,8,6,7 。
当前为:6 层,包含有 1 个要素
当前层的可达集合为 3,5,7,0
除了本层的要素还有3,5,7 开始处理3,5,7 指向层级的可达集合
处理完了3,5,7 得到的可达集合为9,7,2,5,4,8,6,3 。
6层的可达集合为3,5,7,0,9,2,4,8,6 。
因此要素0可达集合为3,5,7,0,9,2,4,8,6 。
当前为:7 层,包含有 1 个要素
当前层的可达集合为 11
7层的可达集合为11 。
因此要素11可达集合为11 。
当前为:8 层,包含有 1 个要素
当前层的可达集合为 2,11,1
除了本层的要素还有2,11 开始处理2,11 指向层级的可达集合
处理完了2,11 得到的可达集合为4,8,2,6,9,7 。
8层的可达集合为2,11,1,4,8,6,9,7 。
因此要素1可达集合为2,11,1,4,8,6,9,7 。
当前为:9 层,包含有 1 个要素
当前层的可达集合为 10
9层的可达集合为10 。
因此要素10可达集合为10 。
运行 19 次的集合运算,
运行 21 次的集合直接赋值,
得到的新矩阵为
|
子 | 丑 | 寅 | 卯 | 辰 | 巳 | 午 | 未 | 申 | 酉 | 戌 | 亥 |
子 |
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
丑 |
|
1 |
1 |
|
1 |
|
1 |
1 |
1 |
1 |
|
1 |
寅 |
|
|
1 |
|
1 |
|
1 |
1 |
1 |
1 |
|
|
卯 |
|
|
|
1 |
|
|
|
1 |
|
1 |
|
|
辰 |
|
|
|
|
1 |
|
1 |
1 |
1 |
1 |
|
|
巳 |
|
|
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
|
|
午 |
|
|
|
|
1 |
|
1 |
1 |
1 |
1 |
|
|
未 |
|
|
|
|
|
|
|
1 |
|
1 |
|
|
申 |
|
|
|
|
1 |
|
1 |
1 |
1 |
1 |