最近为了做近似匹配,编了一个用动态规划计算edit distance 的程序。没优化过的动态规划一般要借助矩阵。于是,我找到了Ruby 的标准库matrix。但用起来不顺手,就自己编了一个:
至少在我的程序里面它够用了。
今天无意间看到The Ruby Way 里面也实现了一个矩阵,不由得感叹——高手就是不一般啊!
他用到了一个小技巧:
下面是Hal 大师(就是The Ruby Way 的作者Hal Fulton)的作品,让我们带着仰慕的目光往下看:
最奇妙的是不用显示的动态分配,而且比起我那个龌龊的实现要节省内存。其奥妙就在于Ruby 的Array 允许任意对象(不想C 等要求元素同类型)。