期末考试题目

原创 2015年07月10日 08:42:29

题目:小吃店的营业情况
某小吃店供应的一种特色点心很受欢迎,小吃店营业时间是上午8时至下午1时,顾客按表1所示规律到达该店。顾客往往是几个熟人一起来用点心的,经过一段时间的观察,每批顾客的人数如表2所示,每位顾客吃点心的份数如表3所示。每位顾客在小吃店的停留时间见表4,如有几个熟人一起进店用点心,则这群顾客在店中的停留时间是其中吃得最慢的顾客所停留的时间。


表1 顾客到达规律

到达时间间隔/min 3 5 6 8 10
概率P 0.3 0.2 0.15 0.2 0.15

表2 每批顾客数

每批顾客人/人 1 2 3 4
概率P 0.4 0.3 0.2 0.1

表3 每位顾客吃的点心份数

每位顾客吃点心的分数/份 1 2 3 4
概率P 0.4 0.3 0.2 0.1

表4 顾客的停留时间

每位顾客停留时间/min 10 15 20 25
概率P 0.1 0.4 0.3 0.2

模拟小吃店5小时的营业情况,然后回答下列问题:
(1) 平均每小时应准备多少份点心?
(2) 每一批同时进店的顾客平均停留多长时间?

解:要回答第一个问题应求出5个小时准备的点心份数,即5个小时内顾客吃的点心份数,而第二个问题则应求出每批顾客的停留时间,在程序中,我们假设8点刚好是第一批顾客到来的时间,程序的流程图如图1所示。

图1 程序流程图
图1 程序流程图

具体程序如下:

close all;
clear;
clc;
load Data;                                                                 
rand('state',sum(100*clock));                                              

iter_num = 300;                                                           
snack_mean = zeros(iter_num,1);                                            
staytime = zeros(iter_num,100);                                           
staytime_mean = zeros(iter_num,1); 

for iter = 1:iter_num
    time = 0;                                                             
    snack_num = 0;                                                         
    count = 0;                                                             

    count = count + 1;                                                     
    pos = find(table2_cum>=rand);                                                 
    cus_num = table2(pos(1),1);                                           
    for i = 1:cus_num
        pos = find(table3_cum>=rand);
        snack_num = snack_num + table3(pos(1),1);
    end
    staytime_tem = zeros(1,cus_num);                                       
    for i = 1:cus_num
        pos = find(table4_cum>=rand);
        staytime_tem(i) = table4(pos(1),1);
    end 
    staytime(iter,count) = max(staytime_tem);                       

    while time<=300
        count = count + 1;
        pos = find(table1_cum>=rand);
        time = time + table1(pos(1),1);
        pos = find(table2_cum>=rand);
        cus_num = table2(pos(1),1);
        for i = 1:cus_num
            pos = find(table3_cum>=rand);
            snack_num = snack_num + table3(pos(1),1);
        end 
        staytime_tem = zeros(1,cus_num);
        for i = 1:cus_num
            pos = find(table4_cum>=rand);
            staytime_tem(i) = table4(pos(1),1);
        end 
        staytime(iter,count) = max(staytime_tem);
    end 
    snack_mean(iter) = snack_num/5;  
    staytime_mean(iter) = sum(staytime(iter,:))/count;
end

mean1 = ceil(mean(snack_mean));                                            
mean2 = round(mean(staytime_mean));                                         
disp(['平均每小时应准备',num2str(mean1),'份点心']);
disp(['每批顾客平均停留时间为',num2str(mean2),'分钟']);

figure(1);
plot(1:iter_num,snack_mean,'-xb');hold on;
plot(1:iter_num,mean1*ones(1,iter_num),'-r','LineWidth',2);
xlabel('迭代次数');
ylabel('平均每小时吃的点心份数');
title('平均每小时吃的点心份数随迭代次数的变化');

figure(2);
plot(1:iter,staytime_mean,'-xb');hold on;
plot(1:iter,mean2*ones(1,iter_num),'-r','LineWidth',2);
xlabel('迭代次数');
ylabel('每批顾客平均停留时间');
title('每批顾客平均停留时间随迭代次数的变化');  

程序的结果如图2和图3所示,在图2中,蓝线表示平均每小时吃的点心份数随迭代次数的变化,而红线则是对平均点心份数作平均后的结果,从图中可以看出平均每小时吃的点心份数是42份,也就是说平均每小时应该准备42份的点心。在图3中,蓝线表示每批顾客平均停留时间随迭代次数的变化,而红线则是对平均停留时间作平均后的结果,从图中可以看出每批顾客的平均停留时间是20分钟左右。

图2 平均每小时吃的点心份数随迭代次数的变化
图 2 平均每小时吃的点心份数随迭代次数的变化

图3 每批顾客平均停留时间随迭代次数的变化
图3 每批顾客平均停留时间随迭代次数的变化

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

(考试)2017年大一下学期C++期末考试题目五

期末考试题目五

(考试)2017年大一下学期C++期末考试题目四

期末考试题目四

操作系统期末考试题目

  • 2014-06-28 14:29
  • 377KB
  • 下载

(考试)2017年大一下学期C++期末考试题目一

2017年期末考试题目和答案

C++ MOOC 西安交通大学 中国大学生MOOC网 期末考试

C++MOOC 期末考试 西安交通大学 1. 行程编码(20分) 题目内容: 输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlengt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)