Advertisement

MATLAB编程实例-(27)子集之和

阅读量:

题目:

源自Mathwork平台的Cody,Problem 43. 子集和问题,

在这里插入图片描述

我主要通过调用nchoosek函数来生成不同形式的组合,并利用sum函数来识别与n值相匹配的组合。
相关代码如下,

复制代码
    function ind = subset_sum(v,n)
    index=1:1:length(v);
    ind=[];
    if sum(v==n)>0
        ind=index(v==n);
    end
    
    if isempty(ind)
        for i=length(v):-1:2
            r=nchoosek(index,i);
            v_r=v(r);
            sum_v_r=sum(v_r,2);
            if sum(sum_v_r==n)>0
                ind=r(sum_v_r==n,:);
                break;
            end

全部评论 (0)

还没有任何评论哟~