Java 邻域求和

Java 邻域求和,java,algorithm,algebra,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

如果给我数字[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]

由于序列可以重复数百万次,我想知道如何计算第I轮而不计算第0轮到第I轮。任何建议都将不胜感激。

此问题应转移到math.stackexchange.com,但:

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

       1  1  1
  A =  1  2  2
       2  3  4

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

很有趣!这似乎是对斐波那契的某种推广,因为如果使用
base=[1,1]
,就得到了斐波那契级数。它(斐波那契)有一个公式,也许使用同样的工具,我们也可以推导出这个公式。无论如何,你们可能会有更好的机会回答一个有趣的问题,但可能属于该死的,我刚要发布同样的东西+一个人。干得好只是想知道,你怎么知道的?这是数论中的一个已知问题还是类似的问题?@Justin:我不知道leonbloy是怎么做到的,但我只是把你的三个“回合”看作一个“步骤”,并试图找出x、y和z在每一步之间的关系是如何变化的。事实证明,x、y和z都是x、y和z的线性函数,这立即表明你可以将变化表示为矩阵。是的,这对于任何线性递归来说都是非常标准的。我今天看了几个小时,从来没有“弄清楚”递归。我知道它一定存在,就是找不到。再次感谢!