您好,我有这个问题,但我错了,我只是不明白这一点。 它是关于获得这个嵌套循环的精确运行时。
具体来说,我可以理解,直到“for i = 2,内循环运行时:2n-2”。然而,在那之后,我无法理解。
问题1)
首先,它说For i=n, inner loop runtime is n+1
。但从我的角度来看,这没有任何意义。假设n = 3并且外环在i = 3时执行其最后一个循环,则j将运行内循环3次(从3到5,因为j = 3 = n <2 * n = 2 * 3 = 6) 。但是,回答说inner loop runtime is n+1
,如果我将{3}放入n+1
,则会变为4次。我不明白为什么这个答案是正确的。
问题2)
如何从1.5n^2 + 0.5n
获取答案2n+(2n-1)+(2n-2)+...+(n+1)
的最后一种形式?你能告诉我前者在数学方面如何成为后者的整体步骤吗?具体关于2n + (2n-1) + (2n-2) + ... + (n+1)
成为n*n + (1+2+3+...+n)
的方式?我认为公式n(n+1)/2
与n=(n+1)
一起使用,但它对我不起作用。
这里使用的是什么配方?
答案 0 :(得分:0)
问题1
你说得对,因为内部循环运行时应该 2n-i ,因此对于i = n,内部循环运行时应该是n。答案是错误的。
问题2
正确的答案应该是
2N +(2N-1)+ ... + N
你可以做的是你可以构建另一个序列总和
N +(N + 1)+ ... + 2n个
对于所有i = 0..n,您将2n-i与n + i匹配 因此你有3n的(n + 1)项,所以2个完全相同的序列的总和是3n(n + 1),因此1个序列的总和是1.5n(n + 1)
或者您可以只应用算术级数之和的公式,请参阅维基页面 https://en.wikipedia.org/wiki/Arithmetic_progression