凸包算法的复杂性可以用求和符号表示为:
1 C(n)=sum(i=1..n-1)sum(j=i+1..n)sum(k=1..n)1
2 =sum(i=1..n-1)sum(j=i+1..n)n
3 =nsum(i=1..n-1)sum(j=i+1..n)1
4 =nsum(i=1..n-1)(n-i)
从这里,我的教授直接跳到了:
5 =nsum(i=1..n-1)i
6 =n*n(n-1)/2
7 =(n^3-n^2)/2
我不明白他是如何摆脱第4行的n。 我尝试了一种不同的方法,得到了一个完全不同的答案:
5 =nsum(i=1..n-1)n - sum(i=1..n-1)i
6 =nsum(i=1..n-1)n - n(n-1)/2
7 =n^2sum(i=1..n-1)1 - n(n-1)/2
8 =n^2(n-1) - n(n-1)/2
9 =n^3-n^2 - n^2/2 - n/2
有谁可以解释我的教授如何摆脱n以及为什么我的解决方案不正确?
由于
答案 0 :(得分:1)
要查看错误的位置,您只需为n
选择一个小数字,然后查看数学运算方式。因此,让我们选择n=3
。
4 =3sum(i=1..2)(3-i) = 3(2+1) = 9
5 =3sum(i=1..2)i = 3(1+2) = 9
现在你的
5 =3sum(i=1..2)3 - sum(i=1..2)i = 3(3+3) - (1+2) = 18-3 = 15
问题是您没有将这两个字词乘以n
5 =n(sum(i=1..n-1)n - sum(i=1..n-1)i)
6 =n( (n-1)n - (n-1)n/2 )
7 =n( (n-1)n/2 )
答案 1 :(得分:0)
扩展条款:
nsum(i=1..n-1)(n-i) = (n-1) + (n-2) + ... + (n-(n-1))=1
现在反过来看看它们:
1 + ... (n-2) + (n-1) = sum(i=1..n-1)i