V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a1310747
V2EX  ›  程序员

有没有绝对均衡的红包算法?

  •  
  •   a1310747 · 2017-03-22 18:06:56 +08:00 · 1686 次点击
    这是一个创建于 2585 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近看到个疑似微信红包的算法
    public static double getRandomMoney(LeftMoneyPackage _leftMoneyPackage) {
    // remainSize 剩余的红包数量
    // remainMoney 剩余的钱
    if (_leftMoneyPackage.remainSize == 1) {
    _leftMoneyPackage.remainSize--;
    return (double) Math.round(_leftMoneyPackage.remainMoney * 100) / 100;
    }
    Random r = new Random();
    double min = 0.01; //
    double max = _leftMoneyPackage.remainMoney / _leftMoneyPackage.remainSize * 2;
    double money = r.nextDouble() * max;
    money = money <= min ? 0.01: money;
    money = Math.floor(money * 100) / 100;
    _leftMoneyPackage.remainSize--;
    _leftMoneyPackage.remainMoney -= money;
    return money;
    }
    }
    代码很简洁 也能实现红包的功能,但是我发现第一个抢红包的会有个最大封顶值。。。有没有其他算法来实现均衡呢
    a1310747
        1
    a1310747  
    OP
       2017-03-22 18:14:55 +08:00
    刚发的贴显示居然是一天前 是被降权了吗

    SpicyCat
        2
    SpicyCat  
       2017-03-22 19:14:12 +08:00
    平分。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2454 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:56 · PVG 23:56 · LAX 08:56 · JFK 11:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.