用算法计算

时间:2012-01-12 13:23:49

标签: algorithm math

抱歉,我想不出一个好头衔。

我正在进行与信息通讯技术相关的练习并遇到这个问题:

为n = 1,2,3,4和5

计算alg a(n)alg b(n)
(a)
    alg_a(n):result
    if n > 1 then
    return(alg_a(n−1)+alg_a(n−1))
    else return(1)

(b)
    alg_b(n):result
    if n > 1 then
    return(2 · alg_b(n−1))
    else return(1)

首先,第1行的代码是什么(alg_a(n):result)?

答:这个问题要求我计算alg a(n),所以我可以说我插入1 if n > 1 --> no --> return 1。但是当我插入n = 2时会发生什么。

感谢任何帮助,

谢谢!

2 个答案:

答案 0 :(得分:6)

算法alg_a(n)计算2 ^(n-1),alg_b(n)做同样的事情。
Theese是recursive函数。例如,4 alg_a返回:
alg_a(4)=
alg_a(3)+ alg_a(3)=
alg_a(2)+ alg_a(2)+ alg_a(2)+ alg_a(2)=
alg_a(1)+ alg_a(1)+ alg_a(1)+ alg_a(1)+ alg_a(1)+ alg_a(1)+ alg_a(1)+ alg_a(1)= 8

答案 1 :(得分:3)

这不是代码,它是某种形式的伪代码。工作“结果”只意味着以下是该功能的结果。因此,alg_a(1)为您提供1的结果,而alg_a(2)为您提供结果(alg_a(1) + alg_a(1)),即2。继续得到你的其他答案。

在这种情况下的问题并不是要求比数字答案更复杂的东西。