怎么让微信抢红包手气最佳 微信抢红包活动怎么玩

官方微信:动力节点java学院 官方微博:动力节点 文章来源:纳兰博客
微信的金额什么时候算?
微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算 。就是在你打开红包的时候进行计算红包的金额 , 而不是预先分配好每个人多少 。
分配:红包里的金额怎么算?为什么出现各个红包金额相差很大?
随机,额度在0.01和(剩余平均值*2)之间 。例如:发100块钱,总共10个红包,平均是10块钱一个,那么发出来的红包的额度在0.01元~20元之间 。
但是,比如前面5个人,每个人都领了4元钱的红包 。那么剩下就是 5个人可以领80元的红包,平均16元一个人 , 那么发出来的红包的额度在0.01~32元之间波动 。所以很容易手气最佳 。
有没有从数据上证明每个红包的概率是不是均等?
不是绝对均等 , 就是一个简单的拍脑袋算法 。
会不会出现两个手气最佳?
会出现金额一样的,但是手气最佳只有一个,先抢到的那个手气最佳 。
【怎么让微信抢红包手气最佳 微信抢红包活动怎么玩】 接下来让我们开始测试:
根据知情人数提供,以下代码仅供参考
publicstaticdoublegetRandomMoney(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;} 进行随机的数据测试 , 初始化数据(30人抢500块),执行了两次,结果如下:
// 第一次15.69 21.18 24.11 30.85 0.74 20.85 2.96 13.43 11.12 24.87 1.86 19.62 5.97 29.33 3.05 26.94 18.69 34.47 9.4 29.83 5.17 24.67 17.09 29.96 6.77 5.79 0.34 23.89 40.44 0.92// 第二次10.44 18.01 17.01 21.07 11.87 4.78 30.14 32.05 16.68 20.34 12.94 27.98 9.31 17.97 12.93 28.75 12.1 12.77 7.54 10.87 4.16 25.36 26.89 5.73 11.59 23.91 17.77 15.85 23.42 9.77 对应图表如下:

怎么让微信抢红包手气最佳 微信抢红包活动怎么玩
文章插图

继续2000次

怎么让微信抢红包手气最佳 微信抢红包活动怎么玩
文章插图

如此看来,大家抢到的红包其实是差不多的 。

经验总结扩展阅读