📄 ziji.m
字号:
function [a]=ziji(b)
%对于一个集合,生成该集合的所有非空非全子集
%结果的记录方式
%a{i}{j} 其中i表示含有i个元素的子集,j表示其中的一个
%生成一项子集
m=length(b);
for i=1:m
a{1}{i}=b(i);
end
n=floor(m/2);
for i=2:n
%由K-1项子集生成k项子集
nm=0;
l=length(a{i-1});
for j=1:l
md=a{i-1}{j};
[c, ia, ib] = intersect(md, b);
mx=max(ib);
if mx<m
for k=mx+1:m
nm=nm+1;
a{i}{nm}=union(md,b(k));
end
end
end
end
%由前半生成后半
%如b中含有m个元素,则其m-i项子集为 b减 i项子集
for i=n+1:m-1
for j=1:length(a{m-i})
a{i}{j}=setsub(b,a{m-i}{j});
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -