1. 将所有Lucky Number按照(4,4),(4,7),(7,4),(7,7)分类,分别计算不重复的数的个数存于矩阵中:
    ---------------
    | (4,4) | (4,7) |
    ---------------      ====>    A
    | (7,4) | (7,7) |
    ---------------
2. 求长度为length的Lucky Sequence的个数。这里应用矩阵乘法即可达到求解的目的。
   (如:(4,4) = (4,4)*(4,4) + (4,7)*(7,4))
   length = 1: return A
   length = 2: return A * A
   ......
   length = n: return A*A*...*A (即A^n)
   
   若length为偶数:
         A*A*A*...*A   => (A*A)*(A*A)*...*(A*A)
                              => (A^2)*(A^2)*...*(A^2)
                              => (A^4)*(A^4)*...*(A^4)
                              => ......
                              => (A^(n/2)) * (A^(n/2))
                              => A^n
   若length为奇数:
         A*A*A*...*A  => A*(A*A*A*...*A) => ...
                             => A*(A^((n-1)/2) * A^((n-1)/2))
   由此可得:

 1 矩阵乘法
    最后将矩阵各个元素累加即是最后结果

用矩阵乘法来求解,code能写的非常漂亮。可惜,“我只猜中了故事开头,却没猜到故事的结局”。

相关文章: