全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅 求助成功区
2013 8
2015-06-29
悬赏 100 个论坛币 已解决
   问题描述如下:从1,2,3,4,5,6,7,8中选出4个进行组合,该组合必须满足以下两个条件:(1)含有1,3,5,7中的一个数字
;(2)组合中不能同时含有(1,8),(2,5),(3,5),(4,7)。找出满足条件的组合。
   本人是一初学者,谢谢各位了。

最佳答案

sjhai 查看完整内容

最终结果为14组 1 2 3 4 1 2 3 6 1 2 3 7 1 2 4 6 1 2 6 7 1 3 4 6 1 3 6 7 1 4 5 6 1 5 6 7 2 3 4 6 2 3 4 8 2 3 6 7 2 3 6 8 2 3 7 8
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-6-29 09:13:40
最终结果为14组
     1     2     3     4
     1     2     3     6
     1     2     3     7
     1     2     4     6
     1     2     6     7
     1     3     4     6
     1     3     6     7
     1     4     5     6
     1     5     6     7
     2     3     4     6
     2     3     4     8
     2     3     6     7
     2     3     6     8
     2     3     7     8
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-29 13:35:32
clear
clc
x=combntns(1:8,4);%从1-8中选出4个的全部组合
[l1,l2]=size(x);
c1=[1,3,5,7];
t=1;
for i=1:l1
    flat=0;
    if sum(x(i,:)==c1)~=0  %第一个条件
        flat=1;
        %第二个条件
        if x(i,1)==1 && x(i,l2)==8 %不含(1,8)
            flat=0;
        end
        for j=1:l2-1 %不含(2,5)
            if x(i,j)==2
                for k=j+1:l2
                    if x(i,k)==5
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
        for j=1:l2-1 %不含(3,5)
            if x(i,j)==3
                for k=j+1:l2
                    if x(i,k)==5
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
        for j=1:l2-1  %不含(4,7)
            if x(i,j)==4
                for k=j+1:l2
                    if x(i,k)==7
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
    end
    if flat==1  %满足条件1,2的组合
        y(t,:)=x(i,:);
        t=t+1;
    end
end
%结果输出
y
        
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-29 14:13:59
谢谢,回家我在电脑上运行下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-29 14:35:08
天下大平 发表于 2015-6-29 14:13
谢谢,回家我在电脑上运行下。
额,程序第一个条件还不太对,现修改如下:

clear
clc
x=combntns(1:8,4);%从1-8中选出4个的全部组合
[l1,l2]=size(x);
t=1;
for i=1:l1
    flat=0;
    find(x(i,:)==1)
    if ~isempty(find(x(i,:)==1, 1)) ||  ~isempty(find(x(i,:)==3, 1)) ||  ~isempty(find(x(i,:)==5, 1))||  ~isempty(find(x(i,:)==7, 1))  %第一个条件
        flat=1;
        %第二个条件
        if x(i,1)==1 && x(i,l2)==8 %不含(1,8)
            flat=0;
        end
        for j=1:l2-1 %不含(2,5)
            if x(i,j)==2
                for k=j+1:l2
                    if x(i,k)==5
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
        for j=1:l2-1 %不含(3,5)
            if x(i,j)==3
                for k=j+1:l2
                    if x(i,k)==5
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
        for j=1:l2-1  %不含(4,7)
            if x(i,j)==4
                for k=j+1:l2
                    if x(i,k)==7
                        flat=0;
                        break;
                    end
                end
            end
            if flat==0
                break;
            end
        end
    end
    if flat==1  %满足条件1,2的组合
        y(t,:)=x(i,:);
        t=t+1;
    end
end
%结果输出
y
        


最终结果(19组):
1     2     3     4
     1     2     3     6
     1     2     3     7
     1     2     4     6
     1     2     6     7
     1     3     4     6
     1     3     6     7
     1     4     5     6
     1     5     6     7
     2     3     4     6
     2     3     4     8
     2     3     6     7
     2     3     6     8
     2     3     7     8
     2     6     7     8
     3     4     6     8
     3     6     7     8
     4     5     6     8
     5     6     7     8
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-29 19:40:26
谢谢了。另如果不含三个元素,如不含(2,3,6)那该怎么编啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群