算法(或者说公式)是什么,对于每对整数i和j,j> = i,给出一个整数k = k(i,j),使得
成立?
换句话说,如果用自然数从左到右逐行填充矩阵的左下部分,从0开始,如何计算给定其行的索引的单元格的值i列索引j< = i?
非常感谢!
答案 0 :(得分:1)
这是i *(i + 1)/ 2 + j。欢迎您查看
答案 1 :(得分:1)
Alleo答案的证明:
首先将第二个公式从j写入1
k(i,j)= k(i,j-1) + 1
k(i,j-1) = k(i,j-2) + 1
...
k(i,1) = k(i,0) + 1
总结你得到的这些公式:
k(i,j) = k(i,0) + 1+1 ..+1 = k(i,0) + j (1)
现在来自你的第三个公式:
k(i,0) = k(i-1,i-1) + 1
使用(1):
k(i-1,i-1) = k(i-1,0) + i-1
然后
k(i,0) = k(i-1,0) + i
然后因为k(0,0)= 0
k(i,0) = sum(p for p=0 to i) = i*(i+1)/2 (2)
然后
(1) & (2) => k(i,j) = i*(i+1)/2 + j