有问题就有答案
Q1:高中数学题?
从10个车位中选出8个连续车位,有3种可能,要使得货车不相邻,只需要将5辆轿车排好,从轿车产生的6个空隙中,选出3个给货车,即可达到目的,5俩轿车的排列顺序有A(5,5)=120种可能,货车插空有A(6,3)=120种可能,则车位预留方案有3×A(5,5)×A(6,3)=43200种
Q2:C语言栈和队列问题:停车场停车问题
# ifndef _ _ plot _ h _ _ # define _ _ plot _ h _ _ # define false 0 # define true 1 # define money1//单价可自行定义# define max _ stop 10 # define max _ pav 100//存储汽车品牌typedefstruct { inttime1//进入停车场时间inttime2//离开停车场的时间char plate[10];//车牌号,定义一个字符指针类型}汽车;//驻留堆栈typedef结构{ carstop[max _ stop-1];//每个汽车信息的存储空间inttop//静态指针,用于指示栈顶位置}停止;//等待队列typedefstruct { intcount//用于指示队列中的数据数量car avae[MAX _ PAVE-1];//前后各车信息的存储空间;//静态指针,用于指示领队和队尾的位置}铺装;//让位于堆栈typedefstruct { carelp[max _ stop-1];//每个汽车信息的存储空间inttop//用于指示栈顶位置的静态指针} Buffer停工;PavementpBufferbCarccharC[10];void stop _ pave();//车停在人行道void car _ come();//停在停车位void stop _ to _ buff();//汽车进入让路栈void car _ leave();//汽车离开void welcome();//主界面功能void display();//显示车辆信息# endif 12345678910112131415161718192021222222242527293031323233041424444474849505051525354555555657源文件图c #。Include#include//包含时间函数# include # include void stop _ to _ pave()//停在人行道上{//判断队列是否已满(p . count 0(p . front==(p . rear 1)% max _ pave)){ printf("人行道已满,请下次使用。}else{strcpy(p.Pave[p.rear]。板块,C);p . rear=(p . rear 1)% MAX _ PAVE;//在结束指示器中添加1p.count//将1printf添加到计数器中("牌照为%s的汽车在人行道上停在% d on ",C,p .后方);}}voidcar_come()//停放在停车位{printf("请输入要停放的车牌号: ");//输入车牌号scanf("%s ",C);If(s.top=MAX_STOP-1)//如果车位已满,停在人行道{ STOP _ to _ pave();//停车位-人行道功能} else { s.top//停车场栈顶指针增加1time _ tt1longintt=时间(t1);//标注进入停车场的时间char * t2T2=ctime(t1);//获取当前时间c . time 1=t;停止。板块,C);//在printf中注册车牌号("车牌号为%s的车停在车位%d,当前时间为:%s\n ",C,s.top 1,T2);}返回;}voidstop_to_buff()//汽车进入让路栈{//停车位。
栈压入临时栈,为需要出栈的车辆让出道 while (s.top >= 0) { if (0 == strcmp(s.Stop[s.top--].plate, C)) { break; } // 让出的车进入让路栈 strcpy(b.Help[b.top++].plate, s.Stop[s.top + 1].plate); printf ("牌照为%s的汽车暂时退出停车位\n", s.Stop[s.top + 1].plate); } b.top --; // 如果停车位中的车都让了道,说明停车位中无车辆需要出行 if (s.top = 0) { strcpy(s.Stop[++s.top].plate, b.Help[b.top--].plate); printf ("牌照为%s的汽车停回停车位%d车位\n", b.Help[b.top + 1].plate, s.top + 1); } // 从便道中 -> 停车位 while (s.top < MAX_STOP-1) { if (0 == p.count) // 判断队列是否为空 { break; } // 不为空,将便道中优先级高的车停入停车位 else { strcpy(s.Stop[++s.top].plate, p.Pave[p.front].plate); printf ("牌照为%s的汽车从便道中进入停车位的%d车位\n", p.Pave[p.front].plate, s.top+1); p.front = (p.front + 1) % MAX_PAVE; p.count--; } }}void car_leave() // 车离开{ printf ("请输入即将离开的车牌号:\n"); scanf ("%s", &C); if (s.top < 0) // 判断停车位是否有车辆信息 { printf ("车位已空,无车辆信息!\n"); } else { stop_to_buff(); } time_t t1; long int t = time (&t1); c.time2 = t; // 标记离开停车场的时间 char* t2; t2 = ctime (&t1); // 获取当前时间 printf ("离开时间%s\n需付%ld元\n", t2, MONEY * (c.time2 - c.time1) / 10);}void Display(){ int i = s.top; if (-1 == i) { printf ("停车场为空\n"); } time_t t1; long int t = time(&t1); // 标记显示时的时间 printf ("\t车牌号\t\t\t停放时间\t\t当前所需支付金额\n"); while (i != -1) { printf ("\t%s\t\t%d秒\t\t\t%d元\n", s.Stop[i].plate, t - c.time1, MONEY * (t - c.time1) / 10); i--; }}void welcome(){ printf ("\t*******************目前停车场状况***********************\n"); printf ("\t停车场共有%d个车位,当前停车场共有%d辆车,等候区共有%d辆车\n", MAX_STOP, s.top+1, (p.rear + MAX_PAVE - p.front) % MAX_PAVE); printf ("\t********************************************************\n"); printf ("\t---------------Welcome to our Car Parking---------------\n"); printf ("\t* 1.Parking *\n"); printf ("\t* 2.leaving *\n"); printf ("\t* 3.situation *\n"); printf ("\t* 4.exit *\n"); printf ("\t--------------------------------------------------------\n");} 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150主函数 main.c/**********************************************************问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后依次进入。汽车离开时按停放时间收费。基本功能要求: 1)建立三个数据结构分别是:停放队列,让路栈,等候队列 2)输入数据模拟管理过程,数据(入或出,车号)。***********************************************************/#include "PLot.h"int main(){ // 初始化 s.top = -1; b.top = 0; p.rear = 0; p.count = 0; p.front = 0; while(1) { system("clear"); welcome(); int i, cho; scanf ("%d", &i); if (1 == i) car_come(); if (2 == i) car_leave(); if (3 == i) Display(); if (4 == i) break; printf ("返回请输入1\n"); scanf ("%d", &cho); if (1 == cho) { continue; } else { printf ("您的输入有误,请重新输入\n"); scanf ("%d", &cho); continue; } } return 0;}
Q3:某停车场画出一排12个停车位置,今有8辆需停放,要求使空车位连在一起,不同的停放方法共有多少种?
首先,分析表明,8辆车停在一起的情况数量为A 8 8。此时包括两端在内有9个空位,选择一个空位,将4个空位插在一起。有C 9 1的情况。根据分步计数原理,可以得到A8C19不同的停车方式。扩展两种常用排列的基本计数原理和应用。1.加法原理和分类计数:每个类别中的每种方法都可以独立完成这项任务;两种不同方法中的具体方法互不相同(即分类不重);任何完成这个任务的方法都属于某一类(即分类不缺失)。2.乘法原理和分步计数法:这个任务在任何一步都不能用一种方法完成,只有连续完成这n步才能完成这个任务;每个步数是独立的;只要一步采用的方法不同,完成这一步的相应方法也不同。
Q4:某停车场有12个停车位置排成一行,求有8个位置停了车。而且四个位置连在一起的概率
C(4,8)*5/C(8,12)=70/99 .A(n,m)=n * (n-1) * (n-2).(n-m1),即每个数从n向下相乘。A(n,m)/A(m,m).一般把m(mn)个元素从n个不同元素中取为一组,称为从n个不同元素中取m个元素的组合。资料提炼:概率加法法则定理:设A和B是互不相容的事件(AB=),那么:P(AB)=P(A) P(B)推论1:设A1,A2,…,An是互不相容的,那么:P (A1A2.An)=P(。
Q5:某停车场有12个位子排成一排,求有8个位子停了车而空着的4个位子连在一起的概率
设事件A为“有8个位子停了车而空着的4个位子连在一起”事件A的可能结果有9种 P=9/C(4 12)=1/55
Q6:某停车场有10个车位,其中2个车位只能停货车,4个车位只能停客车,其余车位货车、客车都能停。
放两辆卡车只有两种方法。在每种放置方式下,其他车辆随机放置。所以只考虑4路和2路公交车的位置,然后乘坐2.4路公交车停在8个地方。“p 84”=8 * 7 * 6 * 5=1680 1680乘以2=3360。
转载请注明:某停车场上从左到右有一排有10个车位。某日需预留8个连续的车位,其中5个停轿车、3个停厢式货车。若,停车场找不到自己的车怎么办 | 热豆腐网址之家