相邻邻居总和

时间:2012-03-05 21:40:46

标签: java algorithm algebra

如果给出数字[1,2,1],我想找到每个数字的总和,并且它的相邻邻居(在一个环中)重复多次。我可以使用以下公式:

base case: [x=1, y=2, z=1]
repeat 7 times.
staring with index 0 or (variable x):
round 1 index 0: [(x+y+z), y, z] == [4, 2, 1]
round 2 index 1: [(x+y+z), (x+2y+2z), z] == [4, 7, 1]
round 3 index 2: [(x+y+z), (x+2y+2z), (2x+3y+4z)] == [4, 7, 12]
round 4 index 0: [(4x+6y+7z), (x+2y+2z), (2x+3y+4z)] == [23, 7, 12]
round 5 index 1: [(4x+6y+7z), (7x+11y+13z), (2x+3y+4z)] == [23, 42, 12]
round 6 index 2: [(4x+6y+7z), (7x+11y+13z), (13x+20y+24z)] == [23, 42, 77]
round 7 index 0: [(24x+37y+24z), (7x+11y+13z), (13x+20y+24z)] == [142, 42, 77]

由于序列可以重复数百万次,我想知道如何在不计算第0轮到第i轮的情况下计算第i轮。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:4)

这个问题应该迁移到math.stackexchange.com,但是:

如果我们调用X [n]列向量(x [n],y [n],z [n])是“n”,则“时间”索引表示完整的一轮,我们得到关系X (n + 1)= AX(n)其中A是矩阵

       1  1  1
  A =  1  2  2
       2  3  4

因此X(n)= A ^ n X(0)