看过你写的一个文章,是关于级差分佣系统的实现,刚好近期我正在开发级差佣金分佣系统,就像你文章所写的,也是按订单的数量来分级,佣金也是根据订单级别来设置的。而现在我是在用python来实现,这要怎么实现。
级别 | 订单数 | 佣金 |
---|---|---|
一级 | 1-100 | 0.5元 |
二级 | 101-300 | 0.8元 |
三级 | 301-600 | 1.1元 |
四级 | 601-1000 | 1.3元 |
五级 | 1001-2000 | 1.5元 |
六级 | 2001-5000 | 1.7元 |
七级 | 5001-10000 | 1.8元 |
八级 | 10001-20000 | 1.9 |
九级 | 20000以上 | 2元 |
1.比如某人的订单数是200,那么他的佣金是1000.5+1000.8=130元。
2.用python来实现
向函数里传入一个当月某人的订单数,来计算应该给他分多少佣金。
这个问题确实和我的文章有点类似 https://blog.csdn.net/huidaoli/article/details/121375066?spm=1001.2014.3001.5502
但也不是完全一样:因为从你的例子中可以看出,当一个人的订单数是200单时,0-100的订单是以0.5元/单来计算,而101-300的订单是按0.8元/单来计算的。
下面我们来用数轴分界和定位法分析,并用python代码来实现。
#!/usr/bin/python3
def differential(i):
arr = [20000,10000,5000,2000,1000,600,300,100,0]
rat = [2,1.9,1.8,1.7,1.5,1.3,1.1,0.8,0.5]
r = 0
for idx in range(0,9):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print ((i-arr[idx])*rat[idx],i)
i=arr[idx]
return r
n = int(input('当月订单数:'))
differential(n)
上面的代码运行后将输出如下结果:
首页会要求输入当日订单数:比如输入200
当月订单数:200
80.0 200
50.0 100
130.0
也就是说:0-100的订单是以0.5元一单结算,101-300之间的订单是以0.8元一单结算。
其实我们不难看出,这类问题都是通过数轴来进行分界的,然后我们定位到相应的分界数轴里面,就可以实现这类的算法。