请教 满减算法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
rm0gang0rf
V2EX    程序员

请教 满减算法

  •  
  •   rm0gang0rf 2022-10-07 10:14:12 +08:00 3339 次点击
    这是一个创建于 1166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1000 个 sku ,每个 sku 的大小重量价格利润都不一样,现在需要设置满减包邮,包邮的条件是 100 公斤,同时购物车金额达到( 1000 )才可以-10%,请教( 1000 )这个金额能狗算出来吗?

    24 条回复    2022-10-08 09:31:21 +08:00
    learningman
        1
    learningman  
       2022-10-07 10:26:28 +08:00
    你是想找出所有可能的组合吗?那全排列求一遍呗。
    thunderw
        2
    thunderw  
       2022-10-07 10:30:29 +08:00
    满 1000 元打九折咯?难点在哪儿?你是卖东西的,不知道卖了多少钱吗?
    「包邮的条件是 100 公斤」,是说不满 100 公斤包邮?满 100 公斤才包邮?还是包邮只包 100 公斤的部分?
    yehoshua
        3
    yehoshua  
       2022-10-07 10:31:55 +08:00
    描述的需求太不明确。建议重新补充下
    rm0gang0rf
        4
    rm0gang0rf  
    OP
       2022-10-07 10:32:03 +08:00
    @learningman 是想找出 1000 这个金额设置多少才不会赔钱,因为有包邮
    rm0gang0rf
        5
    rm0gang0rf  
    OP
       2022-10-07 10:36:23 +08:00
    @thunderw 体积重量影响最后的运费,运费和 折扣 加起来 不能超出利润,如果超出了,就要增加起始优惠金额(1000)
    gosansam
        6
    gosansam  
       2022-10-07 10:36:36 +08:00
    实时计算当前货物利润 - 当前货物重量对应的邮费 ?
    pendulum
        7
    pendulum  
       2022-10-07 10:37:26 +08:00
    大概明白你的意思了,你是想算 100kg 商品的最大成本
    learningman
        8
    learningman  
       2022-10-07 10:38:14 +08:00
    @rm0gang0rf 一样的啊,全排列求一遍,把每个排列里的利润减价格*10%放到一个递增数组里,找到递增数组里第一个小于 0 的不就是了
    thunderw
        9
    thunderw  
       2022-10-07 10:46:06 +08:00
    我觉得没这么麻烦呐,不用看排列组合。
    你就看所有 sku 里,利润率最低的那个。假设客户就可着这一个买,多少钱不亏就行了啊。
    geelaw
        10
    geelaw  
       2022-10-07 10:47:29 +08:00 via iPhone
    然而我们并不知道体积、重量和运费的关系,如果假设 运费 = max { Vp, Wq } 其中 V 、W 是总体积、总重量且 p 、q 是常数,则可以赋予每个 SKU 包邮时的保守利润估计,那就是

    售价 税 成本 max { vp, wq }

    其中 v 、w 是这个 SKU 的体积、重量。

    这是因为同一个 SKU 买很多件,则每件的利润如此。 由此看来如果你要给售价打九折还不亏,就需要

    售价*0.9 调整过的税 成本 max { vp, wq }

    非负,这说明可以设置满减的条件是利润本来就大,而且可以设置满减的起始额就是体积、重量的一次函数主导运费的时候(低体积重量的运费并不会变成 0 ,此时上面的计算不可行)。

    更常见的设置应该让满减后依然保有大量利润,否则你无法处理退货之类的问题。

    最后,请多多使用字母表示数的方法,不要用数字表示未知数。
    ericgui
        11
    ericgui  
       2022-10-07 11:26:14 +08:00
    所以你们应该学学 costco ,搞得简单一点,大家都方便,直接就是多少钱 off ,比如一个路由器,可以 70 刀 off ,一台洗衣机,可以 150 刀 off ,

    别扯那么多满减什么的,太复杂了,容易出 bug
    rm0gang0rf
        12
    rm0gang0rf  
    OP
       2022-10-07 11:47:12 +08:00
    @gosansam 不用实时吧,肯定有利润为负数的情况
    rm0gang0rf
        13
    rm0gang0rf  
    OP
       2022-10-07 11:48:17 +08:00
    @pendulum 最大成本 和 (1000)的关系? 因为组合很多 都算一遍?
    rm0gang0rf
        14
    rm0gang0rf  
    OP
       2022-10-07 11:49:39 +08:00
    rm0gang0rf
        15
    rm0gang0rf  
    OP
       2022-10-07 11:51:54 +08:00
    @thunderw 我可能更需要利润为负数的那些情况减少到最少或者最小,或者增加起始优惠金额。
    rm0gang0rf
        16
    rm0gang0rf  
    OP
       2022-10-07 11:57:19 +08:00
    @geelaw 感谢指教~ 我再看看
    rm0gang0rf
        17
    rm0gang0rf  
    OP
       2022-10-07 11:57:56 +08:00
    @ericgui 需要用满减的方式刺激消费者购买
    zhyl
        18
    zhyl  
       2022-10-07 15:13:35 +08:00
    计算出单位公斤下哪个 sku 是最低利润的,然后算出这 100 公斤这个 sku 需要的金额,那么这个打折金额就是利润最小的
    summerLast
        19
    summerLast  
       2022-10-07 16:58:56 +08:00
    @rm0gang0rf : 这个最简单的值就是最坏的情况即最低利润率, 那么
    总金额*利润率-发货成本-其他成本>0 即可 ,也就是 总金额*利润率>发货成本+其他成本
    总金额>(发货成本+其他成本)/利润率
    xiangyuecn
        20
    xiangyuecn  
       2022-10-07 17:09:00 +08:00
    瞎猜了一下,这种场景应该 Excel 的功劳居多
    rm0gang0rf
        21
    rm0gang0rf  
    OP
       2022-10-08 08:31:30 +08:00
    @zhyl 这样是最简单的,但是怎么算出 1000 这个优惠起始金额,单位公斤下还有体积,运费是实重和实际体积,单独算一个是不是不够准确?是不是您的意思?
    rm0gang0rf
        22
    rm0gang0rf  
    OP
       2022-10-08 08:35:04 +08:00
    @summerLast 这个总金额是购物车的总价?还有个数,需要全部的组合?
    rm0gang0rf
        23
    rm0gang0rf  
    OP
       2022-10-08 08:35:33 +08:00
    @xiangyuecn 是的,但是这个应该有技巧的,不用全部排列出来吧 ~
    NullData
        24
    NullData  
       2022-10-08 09:31:21 +08:00
    这个是一个完全背包问题,可以在 leetcode 上看一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1412 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:51 PVG 00:51 LAX 08:51 JFK 11:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86