有道这样的考试题:某商品的进货价比上月低了5%,但店里仍按上月售价销售,利润率提高了6%。则上月销售此商品的利润率为多少?
注意利润率的计算公式是:利润/成本=利润率。开始时误以为是利润/售价=利润率,走了弯路。可以用多元方程组来解这个问题,首先设置变量:
x:本月进价 y:上月进价 m:本月利润率 n:上月利润率 z:售价,方便计算起见,设为100(元),此值不影响利润率的计算结果
可列出如下方程组:
x=y*(1-0.05) m=n+0.06 m=(z-x)/x n=(z-y)/y z=100
转换为右边为0的形式:
x-0.95*y=0 m-n-0.06=0 m*x-z+x=0 n*y-z+y=0 z-100=0
python常用的数学库有numpy,scipy,sympy等。用sympy解这个方程组更直观一些。这里使用python3安装的sympy库:
from sympy import * x=Symbol('x') #本月进价 y=Symbol('y') #上月进价 m=Symbol('m') #本月利润率 n=Symbol('n') #上月利润率 z=Symbol('z') #售价,假定为100元。 result=solve([x-0.95*y,m-n-0.06,m*x-z+x,n*y-z+y,z-100],[x,y,m,n,z]) print(result)
运行之:
[(83.3333333333333, 87.7192982456140, 0.200000000000000, 0.140000000000000, 100.000000000000)]
可看到,列表对应的值n,也就是上月的利润率为14%。
如果修改售价呢?毕竟这个值原题中并未给出。把售价随便修改为234元,再次运行程序:
from sympy import * x=Symbol('x') #本月进价 y=Symbol('y') #上月进价 m=Symbol('m') #本月利润率 n=Symbol('n') #上月利润率 z=Symbol('z') #售价,假定为234元。 result=solve([x-0.95*y,m-n-0.06,m*x-z+x,n*y-z+y,z-234],[x,y,m,n,z]) #注意此处把z值修改为234了。 print(result)
看输出:
[(195.000000000000, 205.263157894737, 0.200000000000000, 0.140000000000000, 234.000000000000)]
可看到,假定的售价调整后,进价、售价之类相应变化,但上月和本月的利润率,仍然是14%和20%。其实题目原题是选择题,14%就是正确答案。
可见,虽然此类方程并不复杂,但用程序代码来解题,还是能够节约不少时间。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/2202.html