12个人排队问题

阿里巴巴和蘑菇街的笔试题,原题是这样的:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?


将这12个人从1到12编号,只要确定矮的那排,后面一排也就确定了,因为是有序的。


然后第一个位置只能是1(同样12也只能在第二排的最后);

第二个位置只能是2或者3,如果是4的话,2,3必为上面一排的第一和第二个位置,3比4小了,所以不行。

同理,第三个位置只能是3,4,5,第四个位置为4,5,6,7.

以此类推,可以画出一个巨大的树,要注意后面的不能比前面的小,一共6层,最后一层就是最后的答案。


依据这个关系,写出一个模拟的程序来模拟这个过程,(最蠢的办法)


上代码看看

#include<stdio.h>

int a[6][1000];//开6个数组保存树每层的节点 

int main()
{
	a[0][0]=1;//第一层只有 "1" 
	int i,j=0,flag[6],k,l;//flag保存每层节点数目 
	flag[0]=1;
	
	for(i=1;i<=5;i++)
	{
		for(k=0;a[i-1][k]!=0;k++)//遍历上一层节点 
		{
			for(l=i+1;l<=2*i+1;l++)//这层可以考虑的几个数 
			{
				if(a[i-1][k]<l)//保证按从矮到高 
				{	
					a[i][j]=l;//保存这层的节点 
					j++;		//计数 
				}
			}
		}
		flag[i]=j;
		j=0;	
	}

	for(i=0;i<6;i++)
	{
		printf("第%d层节点数目:%d\n",i+1,flag[i]);
	}
	return 1;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于J2EE的博客系统的设计与实现毕业设计 目 录 前 言 1 第1章 技术背景 3 1.1 方案分析 3 1.2 开发工具 3 1.2.1 JSP简介 3 1.2.2 MySQL简介 4 1.2.3 Tomcat简介 4 1.2.4 MyEclipse简介 4 1.2.5 MVC简介 5 1.2.6 Struts 2简介 6 1.2.7 Hibernate简介 7 第2章 需求分析 8 2.1 功能分析 8 2.1.1 系统概述 8 2.1.2 基本功能要求 8 2.1.3 用户分析 8 2.1.4 功能详细说明 9 2.2 性能要求 11 2.3 运行环境要求 11 2.3.1 硬件环境 12 2.3.2 软件环境 12 第3章 总体设计 13 3.1 功能模块划分 13 3.2 数据库设计 13 3.2.1 person用户表 14 3.2.2 space空间信息表 15 3.2.3 post日志表 15 3.2.4 category分类表 16 3.2.5 reply日志评论表 16 3.2.6 comment留言表 16 3.2.7 link超链接表 17 3.3 系统架构 17 3.4 系统运行机制 18 第4章 系统详细设计与实现 20 4.1 类的设计与实现 20 4.1.1 Java Bean类的设计 20 4.1.2 通用类的设计 21 4.2 数据库与Hibernate配置 22 4.3 Struts 2配置 22 4.4 模块详细设计与实现 23 4.4.1 登录与注册模块 23 4.4.2 日志管理模块 24 4.4.3 日志评论模块 30 4.4.4 分类模块 31 4.4.5 留言模块 33 4.5 系统配置 34 第5章 结 论 36 参考文献 38 致 谢 39 前 言 随着互联网技术的高速发展和日益的普及,互联网用户迅速增加,用户对互联网的寄 托也发生了翻天覆地的变化,用户不甘于只单单的被动的接受互联网提供的内容,更希 望能够加入到内容制造的大家庭中,这时传统的Web应用已经显得力不从心,而Web 2.0的出现,极大的改变了这一局面。所谓Web 2.0其核心就是用户不只是内容的被动浏览者,同时也是内容的制造者。正是因为整个互 联网产品设计理念的重大变化,具有代表性的Web 2.0时代的互联网产品也就相继出现,如:论坛,博客、威客,社区、RSS和SNS等。 博客也称为网络日志,是blog的谐音,由很多经常更新的帖子(也叫日志或者个人文 章)顺序倒序排列,最新的帖子在最上面,这些帖子的内容不一定要长篇大论,具体内 容格式也没有任何要求,它以个人纯粹的个人想法和心得,包括你对时事新闻、国家大 事的个人看法,或者一日三餐、服饰打扮的精心料理等,也可以是在基于某一主题的情 况下或者是在某一共同领域内由一群人集体创作的内容。类似于传统的"网络日志",但 又不同于传统的"网络日志",传统的"网络日志"是带有显示的私人性质的,而博客则是 私人性和公共性的有效结合,绝不仅仅是纯粹个人思想的表达和日常琐事的记录,它所 提供的内容可以用来进行交流和为他人提供帮助,是可以包容事个互联网的,具有极高 的共享精神和价值。博客还有个最大的特点是可以图文并茂的描述一件事,在文字、图 片和视频等的共同描述下,使得内容更加生动形象。博客由2000年悄然进入中国,随后 得到迅速发展,但业绩平平,直到2004年由于某一事件,才让民众了解博客,并运用博 客。2005年,财大气粗的原本不看好博客的几大门户,也加入到博客的春秋战国时代, 开始了你死我活的拼杀。 Web 2.0和传统Web 1.0应用相比,有一个非常显著的特点,即:实时性和较高的交互性,正是因为这一实时 性和较高的交互性,传统的互联网开发技术也面临的严峻的挑战。在传统的应用中,内 容一旦发布,基本不会更新,为了减少服务器的的负载,一般会将内容归档成静态文件 (后缀为.html的文件)存在磁盘中,并根据内容在数据库中的唯一标识号生成一个唯一的 url地址。当用户需要查看这些内容时,直接通过所生成的唯一的URL地址,经过服务器 就直接能访问到这些内容,服务器基本不需要花费时间来生成这些内容,这对于服务器 软硬件资源是一个很大的节省。而新形势下(Web2.0)的应用,由于它的实时性和较高的 交互性,就注定了不能完全采用生成静态文件方式来解决这一问题,页面可能会实时更 新,从而需要实时的请求数据库,将所请求的内容展现在用户面前。由于数据的动态生 成。无疑会添加服务器的处理能力,在服务器端并发性一定的情况下,由于请求的用户 过多,而服务器又一时处理不过来,所请求的用户必然会经历一个排队的过程,从而使 得系统的整体响应时候大幅度添加,这样的用户体验也就不言而喻了。以上这些都是做 一个
在银行服务窗口中,经常会出现多个人排队等待办理业务的情况,这就是银行排队问题。为了解决这个问题,可以使用MATLAB来进行模拟和分析。 首先,可以使用MATLAB的随机数生成函数来模拟客户到达银行窗口的时间间隔和每个客户办理业务所需的时间。可以使用指数分布来生成到达时间间隔,使模拟结果更符合实际情况。同样地,可以使用指数分布或其他分布来生成每个客户办理业务所需的时间。 然后,可以使用MATLAB的队列模型来模拟多个客户在排队等待服务的过程。可以创建一个队列对象,并根据不同的策略(如先来先服务或最短作业优先)来处理队列中的客户。在每个时间步中,将客户添加到队列中,并根据策略选择下一个要服务的客户。可以利用MATLAB的条件判断和循环语句来实现这个过程。 在模拟过程中,可以记录每个客户等待时间和总体等待时间的统计信息。可以使用MATLAB的统计工具箱来计算和分析这些数据,例如计算平均等待时间和等待时间的分布。 最后,可以通过修改模拟参数或策略,进行不同的实验和分析。例如,可以尝试不同的到达时间分布、不同的服务时间分布或不同的排队策略,以便获得更好的银行排队方案。 综上所述,MATLAB是一个强大的工具,可以用于模拟和分析银行排队问题。通过模拟客户的到达和服务过程,并分析等待时间和排队策略的统计数据,可以帮助银行优化服务效率,提高客户满意度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值