Algorithm 算出f(n),每个过程所需的单位时间操作的确切数量,作为输入大小n的函数
我有两个问题——我相信其中一个是早些时候发布的——但没有得到回答。 我想我已经正确地回答了第二个问题 有什么建议吗 算出f(n),每个程序所需的单位时间操作的准确数量,作为 输入大小n的函数Algorithm 算出f(n),每个过程所需的单位时间操作的确切数量,作为输入大小n的函数,algorithm,computer-science,Algorithm,Computer Science,我有两个问题——我相信其中一个是早些时候发布的——但没有得到回答。 我想我已经正确地回答了第二个问题 有什么建议吗 算出f(n),每个程序所需的单位时间操作的准确数量,作为 输入大小n的函数 (i) for i<-1 to n do for j<-1 to 2n-i do //a unit cost operation ------------------------------ (i) this is i the one i need some help on. (ii) f
(i) for i<-1 to n do
for j<-1 to 2n-i do
//a unit cost operation
------------------------------ (i) this is i the one i need some help on.
(ii) for i <-1 to n do
for j <- 2 to (n+i) do
// a unit cost operation
for i: 1 to n do:
for j: 2 to n + i do:
unit
对于您提到的案例(案例(i)),您可以使用
在这种情况下,第一项=2*n-1,最后一项为n,因此所有项的总和为
S=n/2*(n+2*n-1)=O(n^2)
对于情况II,第一项=(n+1-1)=n,最后一项=(n+n-1)=(2*n-1),因此总和S等于
S=n/2(第一项+最后一项)=n/2*(n+2*n-1)=O(n^2)
您一定已经注意到(i)和(ii)的S是相同的。您可以使用算术级数来求f(n),通过计算值来求出不是推荐的方法。谢谢-第二种方法如何?我说对了吗?“想知道如何使用算术级数来完成它…”爱丽丝编辑了案例(ii)的问题。不,该公式不能像您选择的方法那样导出,许多其他公式可以拟合到相同的值。另外,你对n=3的情况(ii)的分析是错误的,计算错误。是7,8,9吗?那么总数是25?仍在努力将算术级数应用于i)它是3、4和5。你知道算术级数吗?我想我在它的意思上犯了一个错误:对于j
i=1; j: 2 to 2 = 1 times
total: 1 units
n=2
i=1; j: 2 to 3 = 2 times
i=2; j: 2 to 4 = 3 times
total: 2 + 3 = 5 units
n=3
i=1; j: 2 to 4 = 4 times
i=2; j: 2 to 5 = 5 times
i=3; j: 2 to 6 = 6 times
total: 4 + 5 + 6 = 10 units
Pattern being f(n) = n^2 +1 , is that right?