mathematica 发表于 2012-6-19 08:18:42

mathe版主,这个矩阵是怎么来的?

mathe版主,这个矩阵是怎么来的?

http://tieba.baidu.com/f?kz=411865183

或者记矩阵
m=[0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1
0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1
0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1
0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0
1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1
0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1
0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1
0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1
0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1
0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1
0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0
]

u=
v=';
结果就是
u*m^(n-1)*v;

如果通过这个公式计算第n项,需要使用O(log(n))次大数乘法.

我觉得知道这个矩阵如何来的人应该还有,但是我不知道如何来的,所以..............
谁能告诉我呢?

mathe 发表于 2012-6-19 12:13:57

很简单,就是看长度为n的密码最末两位的状态,其中最末尾分别可以是a,b,c,d,e,f或A,B,C,D,E,F,而其中如果末尾是大写字母,我们需要继续查看倒数第二位是大写还是小写字母,分成两类,所以共18个状态。
而对于长度为n的密码,我们需要计算这18个不同状态下的密码的各自数目。有了这个数目后,再在后面添加一个字母就可以得出长度为n+1的密码的数目,由此得出状态转移方阵。

mathematica 发表于 2012-6-20 08:31:26

还是不怎么明白!!!!!!!!!!!!!!!
页: [1]
查看完整版本: mathe版主,这个矩阵是怎么来的?