当前位置:文档之家› 2011-2012-2实验7 排队论问题的编程实现

2011-2012-2实验7 排队论问题的编程实现

2011-2012-2实验7 排队论问题的编程实现
2011-2012-2实验7 排队论问题的编程实现

实验7 排队论问题的编程实现

专业班级信息112 学号201112030218 姓名高廷旺报告日期.

实验类型:●验证性实验○综合性实验○设计性实验

实验目的:熟练排队论问题的求解算法。

实验内容:排队论基本问题的求解算法。

实验原理对于几种基本排队模型:M/M/1、M/M/1/N、M/M/1/m/m、M/M/c等能够根据稳态情形的指标公式,求出相应的数量指标。

实验步骤

1 要求上机实验前先编写出程序代码

2 编辑录入程序

3 调试程序并记录调试过程中出现的问题及修改程序的过程

4 经反复调试后,运行程序并验证程序运行是否正确。

5 记录运行时的输入和输出。

预习编写程序代码:

实验报告:根据实验情况和结果撰写并递交实验报告。

实验总结:排队问题用lingo求解简单明了,容易编程。加深了对linggo中for语句,还有关系式表达的认识。挺有成就感。很棒。

参考程序

例题1 M/M/1 模型

某维修中心在周末现只安排一名员工为顾客提供服务,新来维修的顾客到达后,若已有顾客正在接受服务,则需要排队等待,假设来维修的顾客到达过程为Poisson流,平均每小时5人,维修时间服从负指数分布,

平均需要6min,试求该系统的主要数量指标。

例题 2 M/M/c 模型

设打印室有3 名打字员,平均每个文件的打印时间为10 min,而文件的到达率为每小时16 件,试求该打印室的主要数量指标。

例题3 混合制排队M/M/1/N 模型

某理发店只有 1 名理发员,因场所有限,店里最多可容纳 5 名顾客,假设来理发的顾客按Poisson过程到达,平均到达率为6 人/h,理发时间服从负指数分布,平均12 min可为1名顾客理发,求该系统的各项参数指标。

例题4 闭合式排队M/M/1/K/1 模型

设有1 名工人负责照管8 台自动机床,当机床需要加料、发生故障或刀具磨损时就自动停车,等待工人照管。设平均每台机床两次停车的时间间隔为1h,停车时需要工人照管的平均时间是6min,并均服从负指数分布,求该系统的各项指标。

实验总结:排队问题用lingo求解简单明了,容易编程,但不同模型的排队问题,需要编写不同的程序,如果大量的问题求解,较废时间。

基于排队理论的仿真模型

关键词:动态模拟蒙特卡洛模拟排队论 内容摘要:论文根据超市顾客到达的随机性和服务时间的随机性,用蒙特卡洛方法模拟不同的顾客到达和服务水平,在MA TLAB/Simulink上对超市单队列多收银台的服务系统进行了动态模拟仿真,得到不同顾客到达率和不同服务水平下,顾客的排队等待时间,服务器的空闲率等要素。 在超市收银排队系统中,顾客希望排队等待的时间越短越好,这就需要服务机构设置较多的收银台,这样可以减少排队等待时间,但会增加商场的运营成本。而收银台过少,会使服务质量降低,甚至造成顾客流失。如何科学合理地设置收银台的数量,以降低成本和提高效益,是商场管理人员需要解决的一个重要问题。 蒙特卡洛方法简介 蒙特卡洛方法又称随机模拟方法,它以随机模拟和统计试验为手段,从符合某种概率分布的随机变量中,通过随机选择数字的方法,产生一组符合该随机变量概率分布特性的随机数值序列,作为输入变量序列进行特定的模拟试验、求解(杜比,2007)。在应用该方法时,要求产生的随机数序列应符合该随机变量特定的概率分布。应用该方法的基本步骤如下: 步骤1:建立概率模型,即将所研究的问题变为概率问题,构造一个符合其特点的概率模型;步骤2:产生一组符合该随机变量概率分布特性的随机数值序列;步骤3:以随机数值序列作为系统的抽样输入进行大量的数字模拟试验,以得到模拟试验值;步骤4:对模拟试验结果进行统计处理(如计算频率、均值等),进而对研究问题做出解释。 基于排队理论的仿真模型建立 (一)超市服务排队模型(M/M/C) 超市收款台服务是一个随机服务系统(唐应辉,2006),该系统具有如下特征:服务的对象是已经选购好商品的顾客,顾客源是无限的,顾客之间相互独立,顾客相继到达的时间间隔是随机的。系统有多个服务员且对每个顾客的服务时间是相互独立的。服务规则遵从先到后服务(FCFS)的原则。每个收款台前都有排队队列,顾客选择较短的队列排队等候,这样形成单队列多服务员(M/M/C)的排队系统。超市收银台顾客排队系统结构见图1。 (二)产生随机数值序列 由于顾客到达间隔时间和顾客服务的时间服从负指数颁布的随机数。令这个负指数分布的随机数为x,负指数分布密度函数为:,其分布函数为:,F(x)的反函数为。设u为[0,1]区间上的独立、均匀分布的随机变量,则所求随机数为,进而简化得,这样得到负指数分布的随机数(吴飞,2006)。 针对商场顾客到达和服务水平的统计数据,据此可产生两个随机数列:顾客到达时间间隔a (i)和顾客服务时间st(i),以此数值序列进行动态输入仿真。 (三)模型变量设置 at(i):表示第i 个顾客到达时刻; a(i):表示第i个顾客到达的时间间隔;st(i):第i个顾客的服务时间;sst(i): 第i个顾客的开始服务时间;lea(i):第i个顾客离开时间;ls(j):第j个队列中最后一个顾客的离开时间;ls(m):每个队列中最后一个顾客离开时间的最早值;freet(j):第j个

排队论模型

排队论模型 排队论也称随机服务系统理论。它涉及的是建立一些数学模型,藉以对随机发生的需求提供服务的系统预测其行为。现实世界中排队的现象比比皆是,如到商店购货、轮船进港、病人就诊、机器等待修理等等。排队的内容虽然不同,但有如下共同特征: 有请求服务的人或物,如候诊的病人、请求着陆的飞机等,我们将此称为“顾客”。 有为顾客提供服务的人或物,如医生、飞机跑道等,我们称此为“服务员”。 由顾客和服务员就组成服务系统。 顾客随机地一个一个(或者一批一批)来到服务系统,每位顾客需要服务的时间不一定是确定的,服务过程的这种随机性造成某个阶段顾客排长队,而某些时候服务员又空闲无事。 排队论主要是对服务系统建立数学模型,研究诸如单位时间内服务系统能够服务的顾客的平均数、顾客平均的排队时间、排队顾客的平均数等数量规律。 一、排队论的一些基本概念 为了叙述一个给定的排队系统,必须规定系统的下列组成部分: 输入过程 即顾客来到服务台的概率分布。排队问题首先要根据原始资料,由顾客到达的规律、作出经验分布,然后按照统计学的方法(如卡方检验法)确定服从哪种理论分布,并估计它的参数值。我们主要讨论顾客来到服务台的概率分布服从泊松分布,且顾客的达到是相互独立的、平稳的输入过程。所谓“平稳”是指分布的期望值和方差参数都不受时间的影响。 排队规则 即顾客排队和等待的规则,排队规则一般有即时制和等待制两种。所谓即时制就是服务台被占用时顾客便随即离去;等待制就是服务台被占用时,顾客便排队等候服务。等待制服务的次序规则有先到先服务、随机服务、有优先权的先服务等,我们主要讨论先到先服务的系统。 服务机构 服务机构可以是没有服务员的,也可以是一个或多个服务员的;可以对单独顾客进行服务,也可以对成批顾客进行服务。和输入过程一样,多数的服务时间都是随机的,且我们总是假定服务时间的分布是平稳的。若以ξ 表示服务员为 n },n=1,2,…第n个顾客提供服务所需的时间,则服务时间所构成的序列{ξ n 所服从的概率分布表达了排队系统的服务机制,一般假定,相继的服务时间ξ , 1ξ2,……是独立同分布的,并且任意两个顾客到来的时间间隔序列{T n}也是独立的。 如果按服务系统的以上三个特征的各种可能情形来对服务系统进行分类,那么分类就太多了。因此,现在已被广泛采用的是按顾客相继到达时间间隔的分布、服务时间的分布和服务台的个数进行分类。 研究排队问题的目的,是研究排队系统的运行效率,估计服务质量,确定系统参数的最优值,以决定系统的结构是否合理,设计改进措施等。所以,必须确

c语言实验报告4 循环结构程序设计

《C程序设计》课程实验报告 学院:班级:姓名:学号: 实验设备:计算机1台实验日期:2011年3月1日 实验项目名称循环结构程序设计 实验目的 掌握使用三种循环语句实现循环结构的方法。 实验要求:能用while~ do~while for 三种循环语句实现循环结构,编写简单的程序,掌握这三种循环语句。 实验内容(包括步骤):1.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。 要求:分别用三种语句编写程序。 2.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11;43=13+15+17+19。 要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。 3.编写程序,求1-3+5-7+…-99+101的值。 4.编写程序,求e的值。e ≈ 1+1/1!+1/2!+1/3!+1/4!+…+1/n! (1)用for循环,计算前50项。 (2)用while循环,要求直至最后一项的值小于10-6。 5.编写程序,输出从公元1600年至2000年所有闰年的年号。每输出5个年号换一行。判断公元年是否为闰年的条件是:

(1)公元年数如能被4整除,而不能被100整除,则是闰年。 (2)公元年数如能被400整除也是闰年。 6.编写程序,打印以下图形: * *** ***** ******* ***** *** * 7.输入一行字符,统计输入的字符中字母‘a’出现的次数(包括大小写)。 8.我国1991年有11.6亿人口,要求根据人口平均年增长率,计算从1991年算起经过多少年后我国的人口增加到15亿。 9.有一个四位数F=BBAA,前二位数相同,后二位数相同,此数又是某个自然数T的平方,求此数。 10.分解一个正整数的所有质因数 调试与结果测试:部分程序出现错误经过调整后调试正常,达到题目要求的结果,运行正常。

循环结构程序设计(C语言实验报告)

仲恺农业工程学院实验报告纸 信息学院(院、系) 专业 班 C 语言程序设计 课 实验目的: (1)熟练掌握用三种循环语句实现循环的方法。 (2)掌握在程序设计中用循环方法实现的一些常用算法。 (3)进一步学习调试程序。 实验内容与总结: 编程练习 1、打印出所有“水仙花数”——教材P129-6.6 程序如下: #include void main() { int i,j,k,n; for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n==i*i*i+j*j*j+k*k*k) printf("水仙花数为:%d\n",n); } } (1)程序编制要点: ①用for 语句实现循环; ②立方的表示; ③if 语句的表达。 (2)该题目涉及的知识点和难点: ①for 语句的输入与使用; ②if 语句的使用。 2、用迭代法求a x = 。求平方根的公式为:)(211n n n x a x x +=+ 程序如下:

#include #include void main () { float x1,x2=1,a; printf("请输入求平方跟的数a="); scanf("%f",&a); do { x1=x2; x2=(x1+a/x1)/2; } while (fabs(x2-x1)>1e-5); printf("x的平方根是:%f\n",x2); } (1)程序编制要点: ①用do…while语句实现循环; ②平方根公式的输入; ③前后两次求出的x的差的绝对值小于1E-5。 (2)该题目涉及的知识点和难点: ①scanf函数,求绝对值函数fabs; ②do…while语句的输入与使用。 3、猜数字:编程先由计算机“想”一个1到100之间的整数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。 程序如下: #include #include /*使用srand和rand函数*/ #include /*使用time函数*/ void main() { int magic,guess,count=0; srand(time(NULL)); magic = rand() % 100 + 1; /*magic得到一个1到100的随机数*/ printf("请输入一个1到100之间的数,你共有10次机会:\n"); do { scanf("%d",&guess); count++; if((guess<=0)||(guess>=100))

汇编语言程序设计实验七

实验七子程序的应用 【实验目的】 1.掌握子程序的定义 2.掌握子程序中的参数传递 3.掌握子程序的调用。 【实验环境】 配有汇编语言开发环境的计算机 【实验内容】 十进制数到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。 【实验过程、结果】 ;程序名:t6-2.asm ;功能:从键盘获取一个十进制数, ;用十六进制的形式输出 decihex segment assume cs:decihex ;主程序部分 main proc far call decibin call crlf

call binihex call crlf main endp ;*************************** decibin proc near mov bx,0 ;从键盘获取一个数字,转换为二进制 ;结果放在bx寄存器中 newchar: mov ah,1 int 21h ;从键盘输入一个字符并显示在屏幕上 sub al,30h ;转换成ASCII码 jl exit cmp al,9d jg exit cbw ;从al扩展到ax,数字现在存放在ax中 xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp newchar

exit: ret decibin endp ;子程序结束 ;将二进制转换为十六进制子程序binihex proc near mov ch,4 rotate: mov cl,4 rol bx,cl ;循环移位 mov al,bl and al,0fh add al,30h cmp al,3ah jl printint add al,7h printint: mov dl,al mov ah,2 int 21h dec ch jnz rotate ret

实验四分支和循环程序设计实验(精)

实验四分支和循环程序设计实验 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言分支程序基本指令的使用方法; 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法; 4.了解汇编语言循环程序设计的基本流程; 5.熟悉汇编语言循环基本指令的使用方法; 6.掌握利用汇编语言的循环指令完成循环程序设计方法。 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。 1.无条件转移指令 JMP 无条件转移指令 JMP是使程序无条件转移至目标处,又分为段内转移、段间转移。 2.条件转移指令 JXX 条件转移指令可分为三大类: 1).简单条件转移指令指令。根据单个标志位的状态判断转移条件。标志位指令转移条件意义 CF JC CF=1 有进位/借位 JNC CF=0 无进位/借位 ZF JE/JZ ZF=1 相等/等于 0 JNE/JNZ ZF=0 不相等/不等于 0 SF JS SF=1 是负数 JNS SF=0 是正数 OF JO OF=1 有溢出 JNO OF=0 无溢出 PF

JP/JPE PF=1 有偶数个 1 JNP/JPO PF=0 有奇数个 1 2).无符号数条件转移指令。 假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是 A-B,其转移指令如下: 指令转移条件意义 JA/JNBE CF=0 AND ZF=0 A>B JAE/JNB CF=0 OR ZF=1 A>=B JB/JNAE CF=1 AND ZF=0 AB JGE/JNL SF=OF OR ZF=1 A>=B JL/JNGE SF OF AND ZF=0 A

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

实验七-网络程序设计综合实验汇总

网络程序设计 实验报告 实验名称:winsock 编程接口实验实验类型:设计型 指导教师:贾浩 专业班级:信安1204 姓名:马灿 学号:20123252 电子邮件: 实验地点:东6 E307 实验日期:

实验成绩:__________________________

实验七网络程序设计综合实验 摘要:本课程设计包含了文件传输协议的简单设计与实现。文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP网络体系结构之上,使用socket编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),利用了已有网络环境设计并实现简单应用层协议。本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。 关键词:SOCKET编程,FTPclient/server程序 一.问题描述及设计思路 1.1 问题描述 服务器端: 1.指定一个目录作为FTP目录(之后所有的文件操作均在此目录下进行) 2.接收客户端的命令请求并提供相应的服务。 客户端:完成与FTP用户的人机界面,以命令的方式向服务器请求服务,主要的命令有:1.CONNECTIP地址端口号 2.指定FTP服务器的IP地址和端口号,连接到服务器。响应:连接成功/失败。 3.LOGIN用户名 4.用户登录(假设在服务器端有用户管理功能)

5.响应:若用户不存在,提示“无此用户”;若用户存在,提示“密码:”;用户输入密码后,若正确提示“登录成功”;若不成功,提示“密码错误”。6.3.DIR 7.显示FTP服务器的FTP目录的文件列表(假设无子目录) 8.响应:目录列表(只要文件名即可)。 9.4.GET文件名 10.将FTP目录下的文件下载到本地,支持断点续传 11.响应:传送成功/失败/无此文件。 12.5.PUT文件名 13.将本地文件上传到FTP目录,支持断点续传 14.响应:传送成功/失败/无此文件。 15.6.HELP(客户端和服务器端均有该功能) 16.实验环境本次实验采用MFC工程工程采用MFC对话框界面工程名称为MyServer和FTPSOCKET。 17.详细设计过程 1.2 设计思路 1. FTP协议基础 FTP 是TCP/IP 协议组中的协议之一,该协议是Internet文件传送的基础,它由一系列规格说明文档组成。目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上或从自己计算机中拷贝至远程计算机上。在TCP/IP协议中FTP标准命令TCP端口号为21,Port

循环结构程序设计实验报告

嘉应学院计算机学院 实验报告 课程名称程序设计基础实验名称实验地点 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错, 及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”, 根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 (1)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 编写程序如下: #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n')

分支与循环程序设计实验报告

分支与循环程序设计实验-报告

————————————————————————————————作者: ————————————————————————————————日期:

实验名称 分支与循环程序设计实验 指导教师 罗志祥 专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 264/2 106410 X X Y X X X X ?≥? =<

C++程序设计实验-1-7 - 完整

二、参照例1-2,用结构化方法编程实现: 1、 根据每学年学费、专业总学分、某课程学分,计算上该课程的总花费,以及每学时,每 分钟的花费。(1学分=18学时) 2、 P43编程题1,2,3 1.输入一个三位整数,将它反向输出。 2.输入平面上某点横坐标x 和纵坐标y ,若该点在由图 3.1表示的方块区域内,则输出1;否则,输出0。 图1.11 正方形 3.输入三个整数,求出其中最小数(要求使用条件表达式)。 根据每学年学费、专业总学分、某课程学分,计算上该课程的总花费,以及每学时,每分钟的花费。使得本校不同专业,不同课程的同学都能用它来计算。(1学分=18学时) 提示: 1、定义一个类, 类的数据成员包括:每学年学费、专业总学分、课程学分; 类的成员函数包括: 设置每学年学费、专业总学分、课程学分; 显示每学年学费、专业总学分、课程学分; 计算上某课程的总花费; 计算上某课程的每学时花费; 计算上某课程的每分钟的花费; 1.输入某学生成绩,若成绩在85分以上输出“very good ”,若成绩在60分到85分之间输出“good ”,若成绩低于60分输出“no good ”。 2.输入三个整数,按从小到大的顺序输出它们的值。 3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还是一般三角形。 4.输入百分制成绩,并把它转换成五级分制,转换公式为: ?????????-----=59 069607970898010090(不合格)(合格)(中等)(良好)(优秀)(级别)E D C B A grade 5.编程序模拟剪刀、石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头。玩游戏者从键盘上输入s (表示剪刀)或r (表示石头)或p (表示纸),要求两个游戏者交

基于排队论模型的收费站优化设计

龙源期刊网 https://www.doczj.com/doc/7716068115.html, 基于排队论模型的收费站优化设计 作者:刘昕岳丁韩旭杨佳琪 来源:《科学家》2017年第15期 摘要本文从形状、尺寸、组合等因素入手,以减少等待时间与不必要的费用为目的,设计了一个新型高速公路收费站。首先,在系统稳态的基础上,运用排队论模型建立收费站车辆行为模型的基本模型。其次,利用元胞自动机算法模拟了四种不同轮廓下的交通流,并分析了它们对拥塞的抵抗能力。最后,进行了遗传算法优化分析,最大限度地提高了吞吐量,降低了成本,提出一种新型的具有双重停车和互惠共享车道的高速公路收费站方案。 关键词排队论模型;元胞自动机算法;遗传算法;高速公路收费站 中图分类号 TP2 文献标识码 A 文章编号 2095-6363(2017)15-0010-01 随着经济不断发展,人们的日常生活节奏不断加快,需要避免把时间浪费在不必要的事情上,比如等待排队,应该花更多的时间去创造更多的价值。基于这样的社会背景,有必要系统地评估高速公路收费站设计。众所周知,高速公路收费站总是浪费时间。除了司机在等待收费亭的时间浪费,如果车辆迅速增加,更容易造成交通堵塞(瓶颈)。如何合理的设计收费站是一个急需解决的问题。 1 排队论模型建立 排队论模型中,车到达一个单次和连续到达的时间间隔服从负指数分布的参数λ。系统中有s服务站。每个服务站的服务时间是相互独立的,服从参数m的负指数分布。当顾客到达时,如果有免费服务台,第一辆车将立即接受服务,否则汽车将排队等候。且等待的时间是无限的。 下面讨论了这个排队系统的平滑分布。本文认为,在系统达到稳定状态后,队列长度n的概率分布等于(n=1,2,…)。设收费站数目为B。 通过公式推导表明,繁忙收费站平均数目并不取决于收费站数目B。 λn=λ,n=0,1,2,… 相关文献给出了在平衡条件下系统中车辆数为n的概率。当收费广场的车辆数目超过或等于收费站的数目,返回的车辆必须等候。 继续推导得到平均队列长度: LB=平均队列长度+被送达车辆的平均数=Lq+p

C语言循环结构程序设计实验报告

甘肃政法学院 本科生实验报告 ( 五) 姓名:赵明翔 学院:公安技术学院 专业:安全防范工程 班级: 2015级安全防范工程班 实验课程名称:程序设计 实验日期:2016年月日 开课时间:2015学年第二学期

(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。例如,153是水仙花数,因为153=12+53+33程序如下: #include int main() { int i,j,k,n; printf("paicissus numbers are"); for (n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); return 0; } 运行结果: (3)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又

多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下了1个桃子了。求第一天共摘了多少桃子。 程序如下: #include int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return 0; } 运行结果: (4)①用牛顿迭代法求方程0634223=-+-x x x 在1.5附近的根. #include #include int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1;

实验二 MATLAB程序设计 含实验报告

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因 c b a 、、的不同取值而定) ,这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2?1 3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. 的值,调用该函数后,

单片机实验4 子程序设计-- BCD码转换为二进制

实验4. 子程序设计----BCD 码转换为二进制 单字节可存放两位压缩BCD 码(0—99) 为0 —9) 单字节BCD 码转换为二进制子程序 入口:(R0)= 压缩BCD 码的地址 出口:(A)= 转换结果 DSFR::MOV A,@R0 ANL A,#0F0H ;取十位数 SWAP A ;变为标准BCD 码 MOV B,#10 MUL AB ;(A)=D1×10 MOV R7,A ;D1× 10暂存 R7 MOV A,@R0 ANL A,#0FH ;取个位 ADD A,R7 ;A=D1×10+D0 RET 1、实验内容: 子程序设计要点: 1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的 入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。而出口条件是指最后结果在哪儿存放。本子程序转换结果在ACC 内。 2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤 1)打开PV32编程序。汇编正确进入调试界面。否则修改程序重新汇编直到通过。 2)打开DATD窗口给20H、21H、R6、R7赋值 3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现 问题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 4) 设断点调试主程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现问 题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 3.实验报告 1.写出主程序流程图、子程序流程图、程序清单 2.根据记渌数据给程序加注解 3.调试心得

数学建模港口问题_排队论

排队模型之港口系统 本文通过排队论和蒙特卡洛方法解决了生产系统的效率问题,通过对工具到达时间和服务时间的计算机拟合,将基本模型确定在//1 M M排队模型,通过对此基本模型的分析和改进,在概率论相关理论的基础之上使用计算机模拟仿真(蒙特卡洛法)对生产系统的整个运行过程进行模拟,得出最后的结论。好。关键词:问题提出: 一个带有船只卸货设备的小港口,任何时间仅能为一艘船只卸货。船只进港是为了卸货,响铃两艘船到达的时间间隔在15分钟到145分钟变化。一艘船只卸货的时间有所卸货物的类型决定,在15分钟到90分钟之间变化。 那么,每艘船只在港口的平均时间和最长时间是多少 若一艘船只的等待时间是从到达到开始卸货的时间,每艘船只的平均等待时间和最长等待时间是多少 卸货设备空闲时间的百分比是多少 船只排队最长的长度是多少 问题分析: | 排队论:排队论(Queuing Theory) ,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,又称随机服务系统理论,为运筹学的一个分支。本题研究的是生产系统的效率问题,可以将磨损的工具认为顾客,将打磨机当做服务系统。【1】 M M:较为经典的一种排队论模式,按照前面的Kendall记号定义,前//1 面的M代表顾客(工具)到达时间服从泊松分布,后面的M则表示服务时间服从负指数分布,1为仅有一个打磨机。 蒙特卡洛方法:蒙特卡洛法蒙特卡洛(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神

循环程序设计实验

循环程序设计实验 实验目的 1、掌握循环程序的设计方法。 2、掌握比较指令、转移指令和循环指令的使用方法。 3、进一步掌握调试工具的使用方法。 实验预习要求 复习比较指令、条件转移指令和循环指令。 复习循环程序的结构、循环控制方法等知识。 读懂“实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。 根据“实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。 从“实验习题”中任选一道题目,编写源程序,以便上机调试。 实验内容 计算1+2+……n=,其中n通过键盘输入。要求在屏幕上提供如下信息: Please input a number(1627): ;出现此信息后通过键盘输入一个小于628的无符号整数 1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和 程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示的范围)。编程指导 键盘输入的十进制数如 368在计算机中是以 33H,36H,38H形式存 放的,如何将它们转换 为一个二进制数0B,以 便对累加循环的循环次 数进行控制是本程序首 先要解决的问题。将键 盘输入的十进制数转换为二进制数的程序清单如下: DATA SEGMENT INF1 DB "Please input a number (0-65535):$" IBUF DB 7,0,6 DUP() DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA START: MOV A X, DATA MOV DS, AX MOV DX, OFFSET INF1 MOV AH, 09H INT 21H MOV DX, OFFSET IBUF ;键入一个十进制数(<65535) MOV AH, 0AH INT 21H MOV CL, IBUF+1 ;十进制数的位数送CX MOV CH, 0 MOV SI, OFFSET IBUF+2 ;指向输入的第一个字符(最高位)

实验一简单程序设计实验

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

循环程序设计实验

2.4 循环程序设计实验 2.4.1 实验目的 1、掌握循环程序的设计方法。 2、掌握比较指令、转移指令和循环指令的使用方法。 3、进一步掌握调试工具的使用方法。 2.4.2 实验预习要求 1、复习比较指令、条件转移指令和循环指令。 2、复习循环程序的结构、循环控制方法等知识。 3、读懂“2.4.3 实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。 4、根据“2.4.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。 5、从“2.4.4 实验习题”中任选一道题目,编写源程序,以便上机调试。 2.4.3 实验内容 计算1+2+……n=?,其中n通过键盘输入。要求在屏幕上提供如下信息: Please input a number(1 627): ;出现此信息后通过键盘输入一个小于628的无符号整数 1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和 程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示 的范围)。 1、编程指导 (1)键盘输入的十进 制数如368在计 算机中是以 33H,36H,38H 形式存放的,如 何将它们转换为 一个二进制数 101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。将键盘输入的十进制数转换为二进制数的程序清单如下: DA TA SEGMENT INF1 DB "Please input a number (0-65535):$" IBUF DB 7,0,6 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET INF1 MOV AH, 09H INT 21H MOV DX, OFFSET IBUF ;键入一个十进制数(<65535) MOV AH, 0AH INT 21H MOV CL, IBUF+1 ;十进制数的位数送CX MOV CH, 0

汇编语言程序设计实验报告三(子程序设计实验)

汇编语言程序设计实验报告三(子程序设计实验) 一、实验目的 1、掌握主程序与子程序之间的调用关系及其调用方法。 2、掌握子程序调用过程中近程调用与远程调用的区别。 3、熟练掌握码型变换的程序。 二、实验内容 1、从键盘输入二位非压缩BCD数,存入AX寄存器中,编程实现将其转换为二进制 数,并在屏幕上显示。要求码型转换程序用远程子程序编写,字符显示用近程子程序编写。数据可循环输入,遇‘00’结束。 三、实验准备 1、预习子程序设计的基本方法,根据实验内容要求编写出实验用程序。 2、熟悉键盘输入和字符显示的程序段的编制。 四、实验步骤 1、编辑、汇编源程序,生成可执行文件。 2、执行程序,检查输入、输出结果,看是否正确。如不正确,用DEBUG检查,修改 源程序,再汇编、运行,直到程序正确为止。 3、用DEBUG的T命令或P命令跟踪程序的执行,观察在远程和近程调用过程中,堆 栈的变化情况。 五、实验报告要求 1、分析近程调用和远程调用的主要区别。用DEBUG命令观察执行过程有何不同。 2、分析实验结果及所遇到的问题的解决方法。 主程序流程图 转换子程序TRAN流程图

七、程序清单 STA SEGMENT STACK ’STACK’ DB 100 DUP(0) STA ENDS GSAG SEGMENT PARA ‘CODE’ ASSUME CS:CSAG MAIN PROC FAR STRA T: PUSH DS SUB AX,AX PUSH AX REV: MOV AH,1 INT 21H MOV BL,AL INT 21H MOV AH,AL MOV AL,BL CMP AX,3030H JE ENDTRAN CALL NEAR PTR TRAN CALL FAR PTR CON MOV AL,0DH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP JMP REV ENDTRAN: RET MAIN ENDP TRAN PROC NEAR AND AX,0F0FH MOV BL,AL MOV BL,AL MOV CL,3 SHL AL,CL MOV CL,1 SHL BL,CL ADD AL,BL ADD AL,AH RET TRAN ENDP CSAG ENDS CSBG SEGMENT PARA’CODE’ ASSUME CS:CSBG

相关主题
文本预览