[理工] [资结][分享] C(n,k) 递回函数 呼叫次数

楼主: JKLee (J.K.Lee)   2017-12-21 01:00:15
考虑以下计算二项式系数(binomial coefficient)的C程式码:
int C(int n, int k)
{
if(n == k || k == 0 )
return 1;
else
return C(n-1, k) + C(n-1, k-1);
}
令 T(n,k) 为计算 C(n,k) 的过程中,呼叫函数 C 的次数。
则 T(n,k) =
1 , if n = k or k = 0 ;
作者: kobebset105 (小小小妹)   2017-12-21 11:15:00
感谢大大分享~
作者: twps6106 (鸡场)   2017-12-21 12:25:00
感谢分享
作者: winiel559 (大汉天威)   2017-12-21 13:09:00
Pretty cool, thanks
作者: s89162504 (阿本)   2017-12-21 14:07:00
今年中山就考了 QQ
作者: FRAXIS (喔喔)   2017-12-21 16:31:00
其实我觉得不用想那么复杂吧 因为 base case 只有 1所以 recursion tree 的 leaves 一定是 C(n, k) 个然后加上 internal node 有 C(n, k) - 1 个

Links booklink

Contact Us: admin [ a t ] ucptt.com