面试时间问题的优化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档