| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 828 人关注过本帖
标题:竞赛方案
只看楼主 加入收藏
sunimage2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-24
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:11 
竞赛方案
现有五人参加数学、语文、英语、物理、化学五门课程的竞赛(每人参加一门),在第二轮竞赛时,不允许参加第一轮参加的课程,问:在第二轮竞赛时,有多少种不同的参赛方法?试编程打印参赛方案。
搜索更多相关主题的帖子: 课程 
2012-08-24 23:05
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
几百种呢,真的要打印参赛方案而不是只要一个个数?
2012-08-24 23:12
sunimage2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-24
收藏
得分:0 
回复 2楼 pangding
heheh,我的意思是让各位高手帮忙编写一个程序,谢谢
2012-08-24 23:19
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
没那么多,只有44种。
收到的鲜花
  • pangding2012-08-27 00:19 送鲜花  5朵   附言:因为他没给第一轮的方案,所以我多乘了个 5 ...

重剑无锋,大巧不工
2012-08-25 00:04
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:3 
4*(2+3*(1+2*1)) = 44
2012-08-25 10:41
sunimage2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-24
收藏
得分:0 
回复 5楼 demonleer
有没有类似的程序或者这个题是由那个简单的数学模型变来的,关键是如何编程?
2012-08-25 11:07
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
以下是引用sunimage2012在2012-8-25 11:07:10的发言:

有没有类似的程序或者这个题是由那个简单的数学模型变来的,关键是如何编程?


这你就要动动脑筋了
2012-08-25 11:52
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
这个问题在组合数学中有个专业名词叫——错排。

重剑无锋,大巧不工
2012-08-25 11:56
莞工潮凯
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-8-25
收藏
得分:3 
以下是运行结果:
第一轮1->A  2->B  3->C  4->D  5->E
第二轮
方案:1  1->B  2->A  3->D  4->E  5->C
方案:2  1->B  2->A  3->E  4->C  5->D
方案:3  1->B  2->C  3->A  4->E  5->D
方案:4  1->B  2->C  3->D  4->E  5->A
方案:5  1->B  2->C  3->E  4->A  5->D
方案:6  1->B  2->D  3->A  4->E  5->C
方案:7  1->B  2->D  3->E  4->A  5->C
方案:8  1->B  2->D  3->E  4->C  5->A
方案:9  1->B  2->E  3->A  4->C  5->D
方案:10  1->B  2->E  3->D  4->A  5->C
方案:11  1->B  2->E  3->D  4->C  5->A
方案:12  1->C  2->A  3->B  4->E  5->D
方案:13  1->C  2->A  3->D  4->E  5->B
方案:14  1->C  2->A  3->E  4->B  5->D
方案:15  1->C  2->D  3->A  4->E  5->B
方案:16  1->C  2->D  3->B  4->E  5->A
方案:17  1->C  2->D  3->E  4->A  5->B
方案:18  1->C  2->D  3->E  4->B  5->A
方案:19  1->C  2->E  3->A  4->B  5->D
方案:20  1->C  2->E  3->B  4->A  5->D
方案:21  1->C  2->E  3->D  4->A  5->B
方案:22  1->C  2->E  3->D  4->B  5->A
方案:23  1->D  2->A  3->B  4->E  5->C
方案:24  1->D  2->A  3->E  4->B  5->C
方案:25  1->D  2->A  3->E  4->C  5->B
方案:26  1->D  2->C  3->A  4->E  5->B
方案:27  1->D  2->C  3->B  4->E  5->A
方案:28  1->D  2->C  3->E  4->A  5->B
方案:29  1->D  2->C  3->E  4->B  5->A
方案:30  1->D  2->E  3->A  4->B  5->C
方案:31  1->D  2->E  3->A  4->C  5->B
方案:32  1->D  2->E  3->B  4->A  5->C
方案:33  1->D  2->E  3->B  4->C  5->A
方案:34  1->E  2->A  3->B  4->C  5->D
方案:35  1->E  2->A  3->D  4->B  5->C
方案:36  1->E  2->A  3->D  4->C  5->B
方案:37  1->E  2->C  3->A  4->B  5->D
方案:38  1->E  2->C  3->B  4->A  5->D
方案:39  1->E  2->C  3->D  4->A  5->B
方案:40  1->E  2->C  3->D  4->B  5->A
方案:41  1->E  2->D  3->A  4->B  5->C
方案:42  1->E  2->D  3->A  4->C  5->B
方案:43  1->E  2->D  3->B  4->A  5->C
方案:44  1->E  2->D  3->B  4->C  5->A
算法可能不是最优的,希望大家探讨。
代码用的是cout输出函数,楼主应该知道如何改用printf输出的。
程序代码:
#include<iostream>

int _tmain()
{
    int i,j,k,l,m;
    int num=0;
    char people[]={'1','2','3','4','5'};
    char object[]={'A','B','C','D','E'};
    cout<<"第一轮";
    for(j=0;j<5;j++)
            {
    cout<<people[j]<<"->"<<object[j]<<"  ";
            }
cout<<endl<<"第二轮"<<endl;
    for (i=1;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            if(j!=1 && j!=i)
            {
for(k=0;k<5;k++)
        {
            if(k!=2  && k!=i && k!=j)
            {
for(l=0;l<5;l++)
        {

            if(l!=3&& l!=i && l!=j && l!=k)
            {
for(m=0;m<5;m++)
        {
            if(m!=4&& m!=i && m!=j && m!=k&& m!=l)
            {

                num++;
               
cout<<"方案:"<<num<<"  ";
cout<<people[0]<<"->"<<object[i]<<"  ";
cout<<people[1]<<"->"<<object[j]<<"  ";
cout<<people[2]<<"->"<<object[k]<<"  ";
cout<<people[3]<<"->"<<object[l]<<"  ";
cout<<people[4]<<"->"<<object[m]<<endl;
            }
        }
            }
        }
            }
        }
            }
        }
    }
    getchar();
    return 0;
}
2012-08-25 13:33
sunimage2012
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-24
收藏
得分:0 
回复 9楼 莞工潮凯
虽然这个程序对我这样水平的理解有点难度,但还是在此深深地对你说一声:真的感谢你!
不知道有没有比这简单一点的算法?
2012-08-25 16:55
快速回复:竞赛方案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024679 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved