用python来实现分销系统中的级差分佣

问题遇到的现象和发生背景

看过你写的一个文章,是关于级差分佣系统的实现,刚好近期我正在开发级差佣金分佣系统,就像你文章所写的,也是按订单的数量来分级,佣金也是根据订单级别来设置的。而现在我是在用python来实现,这要怎么实现。

佣金等级详细列表
级别订单数佣金
一级1-1000.5元
二级101-3000.8元
三级301-6001.1元
四级601-10001.3元
五级1001-20001.5元
六级2001-50001.7元
七级5001-100001.8元
八级10001-200001.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元一单结算。

问题总结:

其实我们不难看出,这类问题都是通过数轴来进行分界的,然后我们定位到相应的分界数轴里面,就可以实现这类的算法。