Scilab算法-递归

问题描述 投票:0回答:1

我有一个用Scilab编写的代码:

function v=myhorner2(a,x)
    N=length(a)
    v=a(1)
    for i=2:N do
        v=v*x+a(i))
    end
endfunction

运作良好。现在,我需要使用相同的代码进行递归,但似乎不起作用-哪里出了错?

function myhorner2(a,x)
    if i=2:N then
         myhorner2(a,x)
         disp (i=2:i+1)
         myhorner2(a+1,x)
    else 
        disp ([v=a])
    end
endfunction

我是初学者。感谢您的反馈

scilab
1个回答
0
投票

从您的原始顺序代码中,我假定系数按照去噪顺序存储在矢量a中。因此,霍纳算法的递归版本应为

function v = rechorn(a,x)
    N = length(a)
    if N == 1 then
        v = a;
    else
        v = x*rechorn(a(1:N-1),x)+a(N)
    end
endfunction
© www.soinside.com 2019 - 2024. All rights reserved.