2013-05-01 47 views
0

我已经编写了一个方法的伪代码来计算Pascal三角形第i行中的一个入口。递归方法的运行时间

Pascal(i,j) 
    if(i==j or j==0) 
    return 1; 
    return Pascal(i-1,j-1) + Pascal(i-1,j) 

我的问题是,我无法弄清楚运行时间。我知道它是指数型的,但我不知道如何通过求解一个递推关系来证明它。

+0

看起来您可能在代码中存在一些错误:在if中,您将j设置为0,而不是使用'=='。此外,你只返回1 - 如果我!= 0和j!= 0,返回哪里? – 2013-05-01 03:41:05

+1

我建议在MathOverflow询问你的问题 – 2013-05-01 08:35:45

回答

0

你会做好一些例子,看看你有多远。请记住,你有一个三角形。你从第i行开始,然后你在第i-1行。下一步,你在第i-2行。等等,在最坏的情况下,你要走多少行?

绘制图片并做实例来建立直觉。从i = 6的几个例子中找到一个证明应该很容易。

+0

我这样做了,在我看来,要获得第n行的值需要在前一行加上n-1的数量。所以,我得到T(n)= T(n-1)+ n-1。它是否正确? – user1317750 2013-05-01 12:34:54