原来矩阵乘法是这样的!
《上帝掷骰子吗》关于矩阵乘法的解释,很有意思。
众所周知,矩阵就是一个记录着数据的二维表格。比如我要去深圳、香港两地旅游,咨询旅行社I以后得到以下矩阵:
深圳 | 香港 | |
---|---|---|
深圳 | a |
b |
香港 | c |
d |
这个矩阵的含义是:他们公司设计的深圳环游有a
条路线,从深圳到香港他们提供b
条路线,香港到深圳又提供c
条路线,环游香港有d
条路线。
简单抽象为:第一列代表旅途的起点位置,第一行(粗体)代表旅途的终点。那么这个矩阵就是:旅行社I从深圳到深圳提供a
种方法,从深圳到香港提供b
种方法,香港到深圳提供c
种方法……
现在我们有了一个矩阵,那么矩阵之间怎么做乘法呢?矩阵乘法的意义是什么呢?
我们又看到了一个旅行社II,这家旅行社制定的路线、景点与I完全不同。于是我们又得到一个矩阵:
深圳 | 香港 | |
---|---|---|
深圳 | e |
f |
香港 | g |
h |
如果我的旅行计划是先跟旅行社I走,然后跟旅行社II走。从深圳出发最后回到深圳,那么我们可以怎么走呢?
深圳->深圳->深圳 或作 深圳->香港->深圳。一共有ae+bg
种方法。如此我们就得到我们的计划表格第一行第一列的数值为ae+bg
(dei这就是矩阵乘法和它的意义!)
深圳 | 香港 | |
---|---|---|
深圳 | ae+bg |
? |
香港 | ? |
? |
同理可得从深圳出发到香港的方法数(深圳->深圳->香港 + 深圳->香港->香港)、香港出发到深圳的方法数、香港出发最后回到香港的方法数,即:我们的整个计划表
深圳 | 香港 | |
---|---|---|
深圳 | ae+bg |
af+bh |
香港 | ce+dg |
cf+dh |
抽象来看,我们只需要定下起点和终点,然后对应两个表格就可以得到我们整个计划表!是不是很棒!