《求解关灯游戏》源码分析之三:9*9 矩阵的消元过程

《求解关灯游戏》源码分析之三:9*9 矩阵的消元过程

在求解过程中,逆矩阵的获得是个难点。在网上找了些资料,没看明白。而那段代码也不长,索性打印一下日志分析一下。

分析时,数据量当然要小些。2*2 的矩阵,常量矩阵是 4*4 阶,常量矩阵和逆矩阵是相同的。索性就分析一下 3*3 阶的。

分析结果如下:

消元的目的,是将常量矩阵转换成单位矩阵。同时,对一个单位矩阵做相同的操作。这样,
常量矩阵转换成单位矩阵时,单位矩阵就变成了逆矩阵了。

将常量矩阵转换成单位矩阵即,将
110100000
111010000
011001000
100110100
010111010
001011001
000100110
000010111
000001011

转换成

100000000
010000000
001000000
000100000
000010000
000001000
000000100
000000010
000000001

=======================
消元过程
110100000
111010000
011001000
100110100
010111010
001011001
000100110
000010111
000001011
485 i:0 j:0
不换行
消元(将第0列的 1 消去,第0行的不消)
110100000
001110000
011001000
010010100
010111010
001011001
000100110
000010111
000001011
485 i:1 j:2
第一行和第2行进行交换行(目的是让 i=1;j=1 位置的数据变为1)
110100000
011001000
001110000
010010100
010111010
001011001
000100110
000010111
000001011
消元(将第1列的 1 消去,第1行的不消)
101101000
011001000
001110000
001011100
001110010
001011001
000100110
000010111
000001011
485 i:2 j:2
不换行
消元
100011000
010111000
001110000
000101100
000000010
000101001
000100110
000010111
000001011
485 i:3 j:3
不换行
消元
100011000
010010100
001011100
000101100
000000010
000000101
000001010
000010111
000001011
485 i:4 j:7
交换行
100011000
010010100
001011100
000101100
000010111
000000101
000001010
000000010
000001011
消元
100001111
010000011
001001011
000101100
000010111
000000101
000001010
000000010
000001011
485 i:5 j:6
100001111
010000011
001001011
000101100
000010111
000001010
000000101
000000010
000001011
消元
100000101
010000011
001000001
000100110
000010111
000001010
000000101
000000010
000000001
485 i:6 j:6
不换行
消元
100000000
010000011
001000001
000100011
000010010
000001010
000000101
000000010
000000001
485 i:7 j:7
不换行
消元
100000000
010000001
001000001
000100001
000010000
000001000
000000101
000000010
000000001
485 i:8 j:8
不换行
消元
100000000
010000000
001000000
000100000
000010000
000001000
000000100
000000010
000000001
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值