面试时间问题的优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论文题目:面试时间问题的优化
姓名赖奕林
专业班级机电工程0803213 34
论文题目:
面试时间问题的优化
摘要:
对于每一个人来说时间是相当宝贵的,但是,在现实生活中,我们很多时候都要等待,这是无法避免的。然而,我们却可以通过提高效率来缩短时间。甲、乙、丙、丁四个同学到同一间公司进行面试,需要经过三轮的独立面试,而由于这四个同学的专业知识水平等各方面的不同,在每一轮面试的时间都有所差别,所以,如何安排他们面试的先后次序才能最节省时间呢?这就是我们要解决的问题。通过对问题的分析,我们知道一共有二十四种可能,其计算过程有些繁琐,如果直接笔算的话非常容易出错,于是我就想为什么不借助计算机帮我们完成呢!C语言正是一个非常好的桥梁,因此我就用C语言写了一个程序,它能直接算出每一种可能的时间,通过比较,我们很容易就得出结论了。通过计算和比较,费时最少的面试顺序是丁、甲、乙、丙,只需八十四分钟即可全部面试完,故他们最早能在九点二十四分离开公司。
关键词:
面试最短时间 C语言
一、问题的重述
有4名同学到一家公司参加三个阶段的面试:公司要求每个同学都必须首先找公司秘书初试,然后到部门主管处复试,最后到经理处参加面试,并且不允许插队(即在任何一个阶段4名同学的顺序是一样的)。由于4名同学的专业背景不同,所以每人在三个阶段的面试时间也不同,如下表所示(单位:分钟):
这4名同学约定他们全部面试完以后一起离开公司。假定现在时间是早晨8:00,问他们最早何时能离开公司?
二、定义假设符号说明
用二维数组表示为:
甲乙丙丁
a[4][3]={{13,15,20},{20,16,10},{20,16,10},{8,10,15}}
用a[4][3]={ 甲、乙、丙、丁}来表示。
排列组合的知识我们可以知道甲、乙、丙、丁四个同学面试的次序一共有24种可能:
{甲、乙、丙、丁} {甲、乙、丁、丙} {甲、丙、乙、丁} {甲、丙、丁、乙} {甲、丁、乙、丙} {甲、丁、丙、乙}
{乙、甲、丙、丁} {乙、甲、丁、丙} {乙、丙、丁、甲}
{乙、丙、甲、丁} {乙、丁、甲、丙} {乙、丁、丙、甲}
{丙、甲、乙、丁} {丙、甲、丁、乙} {丙、乙、甲、丁}
{丙、乙、丁、甲} {丙、丁、甲、乙} {丙、丁、乙、甲}
{丁、甲、乙、丙} {丁、甲、丙、乙} {丁、乙、甲、丙}
{丁、乙、丙、甲} {丁、丙、甲、乙} {丁、丙、乙、甲}
假设:
三、问题分析和模型建立
1、问题的分析
由题意可知,在甲通过第一个面试后,乙便可以参加第一个面试,而此时甲已经开始第二个面试了,当甲第二个面试结束开始第三个面试时,乙有两种情况:第一种,乙第一次面试的时间比甲第二次面试的时间短或相等,则当甲开始进行第三个面试时,乙便可以参加第二个面试;
第二种,乙第一次面试的时间比甲第二次面试的时间长,则当甲开始进行第三个面试时,乙还没完成第一个面试;
若是第一种情况总时间t=a00+a01+a02+a12+a22+a32
若是第二种情况总时间t=t+(a[i][j]-a[i-1][j+1]) (i,j分别a后面的数字,其中0
2、模型的建立
通过分析,由于计算比较繁琐,我们可以通过计算机来帮助我们完成,于是我用C语言写出了以下程序:
#include
void main()
{
int a[4][3]={{8,10,15},{13,15,20},{10,20,18},{20,16,10}};
int t,i,j;
t=a[0][0]+a[0][1]+a[0][2]+a[1][2]+a[2][2]+a[3][2];
for(i=1;i<=3;i++)
{
for(j=0;j<=1;j++)
if(a[i][j]>a[i-1][j+1])
t=t+(a[i][j]-a[i-1][j+1]);
}
printf("%d\n",t);
}
想要算出每一种情况的时间,只需要按照以上所分析的二十四种情况逐一代入a[4][3]={ }即可。对应结果如下所示:
四、问题的求解
以上表格列出了二十四种可能所花的时间,显然面试顺序为丁、甲、乙、丙是所花时间最少,只需八十四分钟,即为所求。
故他们最早能在九点二十四分一起离开公司。
五、模型的优缺点及改进方向
优点:
能准确确定每种方案所用的时间,公司可根据具体情况选择合适的方案。缺点:
当人数比较多时找出最短时间的方案比较麻烦,需要逐个列出来做比较,效率比较低。
模型的改进:
利用C程序函数的嵌套和递归直接求出最短时间的方案。
六、参考文献
谭浩强,C程序设计(第三版),北京,清华大学出版社,2008