作业帮 > 综合 > 作业

用matlab编程有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 04:08:37
用matlab编程
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4.组成所有的排列后再去
掉不满足条件的排列
function y=example
y=[];ty=[];
%%生成互不相同的组合
for i=1:4
for j=1:4
for k=1:4
temp=100*i+10*j+k;
ty=[ty;temp];
end
end
end
%%筛选出无重复数字的组合
for t=1:length(ty)
it=floor(ty(t)/100);%%求得百位数
jt=floor(mod(ty(t),100*it)/10);%%求得十位
kt=ty(t)-100*it-10*jt;%%求得个位
if it~=jt&&jt~=kt&&kt~=it %%如果没有重复数字,则添加到最后输出
y=[y;ty(t)];
end
end
end
上述是按照您的分析来写的,但是我觉得可以在组成排列的过程中同时筛选,程序如下:
function y=example
y=[];
%%生成互不相同的组合
for i=1:4
for j=1:4
for k=1:4
%%筛选出无重复数字的组合
if i~=j&&j~=k&&k~=i
temp=100*i+10*j+k;
y=[y;temp];
end
end
end
end
end
望采纳~