适当换车是否省钱
摘要:本题主要解决适当的换车能否省钱的问题。通过
,我们认为坐车有多种方式,总费用既与路程有关也与坐车方式有关。我们建立的模型是建立在一定的假设的基础上的,主要建立了两种数学模型:正常时段和特殊时段内的模型,在不同时段内进行比较,通过比较我们得出结论:在任何时段内换车都有省钱和多出钱的可能,而且第二种方式有很多种子方式,换车次数也较多,如果选择了正确的换车方式,则能省一些钱,如果选择了错误的换车方式,则要多出钱了,所以乘客很难决定选择什么样的坐车方式能够省钱。但我们认为适当换车真的能省钱。
1. 问题的重述
本市出租车收费制度在98年进行了调整,由原来5公里起步价14.4元、每公里车费1.8元变为3公里起步价10元、每公里2元,并且10公里以上每公里增收50,、特殊时段(23:00,6:00) 每公里增收30,。制度改变后,一些精明的乘客在行驶一定里程后,利用换车或让司机重新计价的方法来节省车费。可现在,这种乘客越来越少见了。请问适当换车真的省钱吗,建立数学模型解释上述现象。
2. 模型假设与符号说明
2.1 模型假设
(1) 乘坐的总路程足够长,为最佳路程,且为公里的整数倍。
(2) 有足够的时间乘坐出租车。
(3) 换车地点在上次下车的地点,且每次均能等到车。
(4) 每次乘车的路程均为公里的整数倍。
(5) 乘坐的出租车在行驶过程中不会出现任何故障,能保证正常行驶。
(6) 每次乘车均在在同一段时间内(均在正常时段或特殊时段内)。 2.2 符号说明
S
示总路程(单位:公里)
s 表示仅收起步价的最大路程(单位:公里)
p 表示起步价(单位:元)
p 表示每公里收费价格(单位:元) m
s 表示超过该路程开始增收费用(单位:公里) a
p 表示超过路程s每公里增收的费用(单位:元) aa
p 表示特殊时段每公里增收的特殊费用(单位:元) t
s 表示不小于路程s换车时本次坐车已行驶的路程(单位:公里) ia
s 表示不大于路程s换车时本次坐车已行驶的路程(单位:公里) ja
N 表示所有不小于路程s坐车总次数 a1
N 表示所有不大于路程s坐车总次数 2a
Q1 表示在正常时段内采用第一种坐车方式到达目的地所花费的总费用(单位:元)
Q2 表示在特殊时段内采用第一种坐车方式到达目的地所花费的总费用(单位:元)
Q3 表示在正常时段内采用第二种坐车方式到达目的地所花费的总费用(单
位:元)
表示在特殊时段内采用第二种坐车方式到达目的地所花费的总费用(单Q4
位:元)
3. 模型分析及模型建立
3.1 模型分析
我们认为换车与让司机重新计价在经济效果上是等效的,本题中我们将换车与让司机重新计价统称为换车。乘客乘坐出租车到达目的地总体上有两种方式: (1)乘坐某辆出租车直接到达目的地;(2)中途换车到达目的地。第一种坐车方式不存在其它的子方式,但存在时间段的问题,由于时间段是不受坐车控制、不以人的意志为转移的(也就是说由于某个时段内乘客需要坐车,不能等到另一个时间段再做) ,这个时候坐车所花费的总费用有两种可能:正常时间段内的总费用Q1 = p + p(S-s) + p(S- s)其中p= p/2, 特殊时间段内的总费用Q2 = maaam
Q1+ p(S-s)其中p = 3 p/10,正常时间段内坐车的总费用明显要低于特殊时ttm
间段内的总费用。第二种坐车方式存在无数种子方式,但我们需要的是较经济的方式,考虑到经济的问题,所以只有有限的几种方式满足要求,且一定存在某一种坐车方式使得到达目的地后所花费的总费用最少。第二种方式也存在时间段的问题,但是两种坐车方式在正常时间段内都不需要增加特殊费用,且在特殊时间段内增加的特殊费用不相同,因为特殊时间段内,增加的费用与路程有关,所以与坐车方式也有关,所以下面我们建立模型时需要考虑正常时段和特殊时段内不同的坐车方式。
3.2 模型建立
(1) 模型一
第一个模型我们考虑的是在正常时段内采用第一种坐车方式和第二种坐车
方式的比较。正常时段内第一种坐车方式的总费用
Q1 = p + p(S-s) + p(S-s) maa
第二种坐车方式总费用
NN12
Q2 = + p,p(s,s),p(s,s)p,p(s,s),miaia,mji,1,1j
NN1J
总路程 S = + ss,i,ji,1j,1
约束条件有 s?s,s,s?s,N?(S/s), N?(S/s) jjiiaaaa
(2) 模型二
第二个模型我们考虑的是在特殊时段内采用第一种坐车方式和第二种坐车方式的比较。特殊时段内第一种坐车方式的总费用
Q3 = p + p(S-s) + p(S-s) + p(S-s) maat
第二种坐车方式总费用
NN12
Q4 = + p,p(s,s),p(s,s),p (s-s)p,p(s,s),p (s-s),miaiati,tjmji,,11j
NN1J
总路程 S = + ss,i,ji,1j,1
约束条件有 s?s,s,s?s,N?(S/s), N?(S/s) jjiiaaaa
4. 模型求解及模型检验
(1) 模型求解
首先,我们来求解第一个模型:对于正常时段内第一种坐车方式,根据公式Q1 = p + p(S-s) + p(S-s) ,如果再知道总路程的话,我们很容易就能求maa
出总费用(如S=10,求得Q1=24.0元;S=20,求得Q1=54.0元);对于正常时段内第二种坐车方式,我们要求总路程足够长,以满足可以换车的需要,当总路程可以满足换一次车,我们很容易就能找出最经济的换车方式(如S=20,当车行到10公里时换车,此时Q2=48.0元,很明显比Q1小,此时换车较为经济),但是有时路程是很长的,一次换车可能总费用更高,而多次换车可能较为经济一些。
对于特殊时段的两种坐车方式也满足上述规律,下面是我们通过程序求解出已知总路程的部分解。具体程序见附录。
在程序中输入第一个总路程28,结果如下:
在程序中输入第二个总路程50,结果如下:
在程序中输入第三个总路程78,结果如下:
(2) 模型检验
当总路程为28公里时,表示路程不算远,正常时段采用第二种坐车方式最经济的子方式仅仅比采用第一种坐车方式节省2元钱,但需要换三次车,且仅有一种子方式省钱,其它三种子方式都要多出钱;特殊时段采用第二种坐车方式比采用第一种坐车方式省钱和多出钱的子方式相当,若选择了错误的换车方式,则要多出钱,若时间不足或等不到车,那是相当麻烦的。
当总路程为50或78公里时,正常时段采用第二种坐车方式最经济的子方式可以比采用第一种坐车方式省几十元,最不经济的子方式比第一种坐车方式多几十元,且经济的与不经济的子方式相当,而且子方式有几十种,换车次数也较多;特殊时段采用第二种坐车方式比采用第一种坐车方式省钱和多出钱的子方式的比例约为1:3,子方式有几十种,换车次数也较多。即使不考虑时间和能否等到车,但是也要考虑采用怎样的子方式较为经济,由于子方式达到几十种,万一选择了最不经济的坐车方式,结果还得多出钱。所以适当换车可以省钱,但需要考虑很多情况。
5. 模型优缺点分析
该模型可以大概求解出换车可以为乘客省多少钱或多出多少钱,而且可以大致得出换车的次数,但是不能确定具体的坐车方式,也就是说,不能确定行驶多远的路程换一次车,只能确定要换几次车省钱或不省钱,大概有多少种坐车方式省钱,多少种坐车方式多出钱。
6. 模型推广
以上是在同一时段内的模型,下面我们将模型推广到跨时段的情况: 第一种坐车方式由正常时段驶向特殊时段总费用
Q = p + p(S-s) + p(S-s) + p(S-s) maatt1
其中s( s?s)进入特殊时段时已行驶过的路程,由特殊时段驶向正常时段总tt
费用
'' Q = p + p(S-s) + p(S-s) + p(s-s) 1maatt
''其中s( s?s)进入正常时段时已行驶过的路程 tt
第二种坐车方式总费用
''NN12
Q= + + p,p(s,s),p(s,s)p,p(s,s),miaia,2mji,1,1j
''NN34
+ p,p(s,s),p(s,s),p (s-s)p,p(s,s),p (s-s),miaiati,tjmji,1,1j
''''其中N、N、N、N分别表示正常时段所有不小于路程s坐车总次数、正常时3124a段所有不大于路程s坐车总次数、特殊时段所有不小于路程s坐车总次数、特aa殊时段所有不大于路程s坐车总次数。 a
可以通过编写成程序或使用LinDo软件求解该模型。
7.参考文献
[1] 韩中庚.数学建模竞赛:获奖
精选与点评.北京:科学出版社,2007 [2] 吴建国.数学建模案例精编.北京:中国水利水电出版社,2005 [3] 彭放.数学建模方法.北京:科学出版社,2007
[4] 甘筱青.数学建模教育及竞赛.南昌:江西高校出版社,2004 [5] 王宏宇、贾仰理.java面向对象程序设计.北京:中国人民大学出版社,2009
附录:import java.io.BufferedReader; import java.io.InputStreamReader; public class SolveProblem {
public static int input(){
BufferedReader bf= new BufferedReader(new
InputStreamReader(System.in));
try{
return Integer.parseInt(bf.readLine());
}catch(Exception e){
System.out.println("输入错误,请重新输入~");
return input();
}
}
public static void main(String[] args) {
int S=0,i=0;
int s=3,sa=10,N1=0,N2=0;
double p=10,pm=2,pa=1,pt=0.6;
double Q1,Q2,Q3,Q4;
System.out.println("请输入总路程:");
S = input();
Q1 = p + pm*(S-s) + pa*(S-sa);
"); System.out.println("正常时段内采用第一种坐车方式总费用为: "+Q1+"元
for( N1=1; N1<=S/sa; N1++ ){
for( N2=1; N2<=S/sa; N2++ ){
if( S >= ((N1+N2)*s) ){
i++;
Q2 = (N1+N2)*p + (S-(N1+N2)*s)*pm + (S-N2*sa)*pa;
System.out.println("正常时段内采用第二种坐车方式第"+i+"种子方式总费用为: "+Q2+"元;"+"坐车次数为:"+(N1+N2));
}
} }
i=0;
Q3 = p + pm*(S-s) + pa*(S-sa) + pt*(S-s);
System.out.println("特殊时段内采用第一种坐车方式总费用为: "+Q3+"元");
for( N1=1; N1<=S/sa; N1++ ){
for( N2=1; N2<=S/sa; N2++ ){
if( S >= ((N1+N2)*s) ){
i++;
Q4 = (N1+N2)*p + (S-(N1+N2)*s)*(pm+pt) + (S-N2*sa)*pa;
System.out.println("特殊时段内采用第二种坐车方式第"+i+"种子方式总费用为: "+Q4+"元;"+"坐车次数为:"+(N1+N2));
}
} } } }