2011-09-04 75 views
0

什麼是算法(或更確切地說是公式),對於每個整數i和j,如果j> = i,給出一個整數k = k(i,j),使得如何按照字典順序列舉無序對整數

  • K(0,0)= 0
  • K(I,J2)= K(I,J1)+1爲J2 = J1 + 1個
  • 圖K(i,0)= K(異1,i-1)+ 1,i> = 1

是否成立?

換句話說,如果用從0開始的自然數從左到右填充矩陣的左下部分,如何計算給定其行的索引的單元格的值我和列索引j < = i?

非常感謝!

+0

感謝。 *開始阻止* – shuhalo

回答

1

證明:

首先你從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 
1

這是i *(i + 1)/ 2 + j。歡迎您來檢查Alleo答案

相關問題