当前位置: 首页 > 科技观察

想省油钱,你用Python给你的油箱加油

时间:2023-03-20 20:13:14 科技观察

下面介绍一下我是如何使用Python来节省成本的。我最近驾驶的是93号汽车。根据汽车制造商的说法,它只需要填充91辛烷值的汽油。但是,美国只有87、89和93号汽油。我家附近的汽油价格每加仑每等级高30美分,因此93等级每加仑高60美分。为什么不存点钱呢?一开始很简单,先加93号汽油,等油表显示油箱半满的时候加89号汽油,就可以得到一整箱91号汽油了。但是这样就麻烦了,剩下的半箱91号汽油加上半箱93号汽油,就只能变成一箱92号汽油了,接下来呢?如果继续数下去,只会越来越混乱。这就是Python派上用场的地方。我的计划是根据汽油的实时状态不断往油箱里加93号汽油或者89号汽油,最终目标是让油箱里的汽油数量不少于91号。我需要做的只是使用一些算法来判断新旧汽油混合的数量。使用多项式方程也可以解决这个问题,但在Python中,似乎只需要循环即可。#!/usr/bin/envpython#octane.pyo=93.0newgas=93.0#这个变量记录了上次添加的汽油数量i=1whilei<21:#20次迭代(加油次数)ifnewgas==89.0:#如果上次加注的是89号汽油,改成93号汽油newgas=93.0o=newgas/2+o/2#油箱半满时加油else:#如果上次加注的是93号汽油,则加89号汽油newgas=89.0o=newgas/2+o/2#油箱半满时加油printstr(i)+':'+str(o)i+=1代码中,I首先设置初始值将变量o(油箱中混合汽油的数量)和变量newgas(上次添加的汽油数量)设为93,然后循环20次,即分别添加89号汽油和93号汽油共20次保持混合汽油次数稳定。1:91.02:92.03:90.54:91.755:90.3756:91.68757:90.343758:91.6718759:90.335937510:91.6679687511:90.33398437512:91.666992187513:90.333496093814:91.666748046915:90.333374023416:91.666687011717:90.333343505918:91.666671752919:90.333335876520:91.6666679382从以上数据来看,只需要10到第15个循环时,汽油级别的数量稳定下来并相当接近91号汽油的目标。这种交替混合直到稳定的现象看起来很有趣。每次交替加入等量不同号数的汽油,都会趋于稳定。事实上,即使添加不同量的89和93汽油,它也会稳定下来。所以我尝试了不同的比例,我认为我需要添加比89多一点的93。使用尽可能少的新鲜气体,我最终计算出当油箱大约7/12满时应该添加89,而93应在水箱满?时添加。我的循环将更改为:ifnewgas==89.0:newgas=93.0o=3*newgas/4+o/4else:newgas=89.0o=5*newgas/12+7*o/12以下来自The第10次加注开始时的混合数:10:92.512227297811:91.048799257112:92.512199814313:91.04878322514:92.512195806215:91.048780887如您所见,这比我的混合数稍微高一点1/12比例,但7/12略小于5/8,我可以近似。一个更简单的解决方案是每次先用93加满油箱,然后在油箱半满时加89直到用完,这可能是我的常规解决方案。就我个人而言,这种做法不是很好,有时甚至会带来一些麻烦。但是对于长途旅行来说,这个方案会比较简单。有时我也会因为gas价格突然下降而购买一些gas,所以这个选项是我可以考虑的一堆选项之一。当然,最重要的是:开车不写代码,写代码不开车!