首页 > 代码库 > ActionScript3游戏中的图像编程(连载五十八)

ActionScript3游戏中的图像编程(连载五十八)

4.1 从田忌赛马到矩阵的四则运算


4.1.1 田忌赛马故事中的矩阵及其加法

      尽管矩阵属于高等数学的范畴,但早在春秋战国时期,矩阵数学的思想就已经在中国的土地上开始萌芽。


      齐国的大将田忌,很喜欢赛马,有一回,他和齐威王约定,要进行一场比赛。 他们商量好,把各自的马分成上,中,下三等。比赛时,上马对上马,中马对中马,下马对下马。由于齐威王每个等级的马都比田忌的马强一些,所以比赛了几次,田忌都失败了。


      正当田忌打算换几匹实力更强的马跟齐威王再战一场,一旁观战的朋友孙膑给他支招,在不用换马的情况下也能赢得比赛,于是田忌立即再次向齐威王发出挑战,齐威王答应了。


      在孙膑的英明领导下,田忌先用下等马对阵齐威王的上等马,然后用上马对阵中马,最后用中马对阵下马,结果田忌以两胜一负的成绩反败为胜。


      这就是家喻户晓的成语故事《田忌赛马》,它通过马匹阵型的调整生动形象地阐述了计谋与策略的在比赛和战斗中的重要性。


      故事的开头,我们看到了一个马的布阵——【上,中,下】。


      这样的布阵让田忌在与齐威王的赛事中屡战屡败,他尝试通过换马,我们姑且理解为提升布阵中各马匹档次的方法(我暂且假设上上等马提升1个档次,中等马提升3个档次,下等吗提升2个档次)来扭转局面。这一过程可以写成如下的表达式:

 

     


 
      把转换前后的差值部分抽离出来,得到:

 

     


 
      由于3行都是加法运算,所以箭头左侧的两个方阵可以用+运算符连接起来,箭头也可以替换成等号:

 

     


 
      上式的3个方阵都呈现为矩形,所以数学上可以称之为矩阵。由此得出矩阵的加法运算法则:

 

     


 
      3个矩阵都是1行3列(横向的一排数称作列,纵向的一排数称作行。可见,矩阵数学上,行和列的概念跟我们日常的理解不一致,需要注意一下),我们称之为1*3矩阵,它可以很容易推广到n*m矩阵,其加法的结果通过两矩阵中对应位置的数字相加而成。

 

     

 

 

 


 

 


 

ActionScript3游戏中的图像编程(连载五十八)