专栏名称: 顶尖架构师栈
分享业务架构、技术架构、系统设计方案,以及微服务架构源码,提供业务场景答疑
今天看啥  ›  专栏  ›  顶尖架构师栈

红包算法揭秘!哪段代码让你只抢了0.01元?

顶尖架构师栈  · 公众号  ·  · 2024-05-30 07:00
    

文章预览

👉 目录 1 普通随机法 2 二倍均值算法 3 线段分割算法 4 验证 array_rand 随机特性 5 统计算法耗时与效果 01 普通随机法 普通随机法,简单来说其实就是剩余值随机。 普通随机: 用余下的值为最大区间进行随机,但可能不均匀,有些人一把随到99,下面很多人都没得随机了。 mt_rand(1, 2); // mt_rand 包含区间前后边界的 ,即包含最大值和最小值 ,1和2都会出现。 // 剩余值随机 ,优点:逻辑简单,缺点:随机区间步步减少,可以明显看出随机值的递减特性, 对后面玩家极不公平,且容易被抓到规律,造成舆论不满。 // 做抢红包体验很差,稍微弥补一点的方案:shuffle一下随机数组,让看起来不那么递减明显。 $res = LeftMoneyRedbag($Moneys, $userNums, $isEveryHave); //余值随机红包算法 ,一般都是使用剩余值在计算一把。 function LeftMoneyRedbag ($Moneys, $userNums, $isEveryHav ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览