微信普通红包和拼手气红包区别 (微信怎么100%手气最佳)

官方微信:动力节点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次

微信抢红包手气最佳技巧,微信拼手气红包如何控制尾数

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