今天去参见一个面试,结尾时,面试官问了个红包如何随机分配实现问题。这个确实没搞过,也想不出来。回头自己研究了一下,发现也就这么回事。。
参考文章 https://www.cnblogs.com/dreign/p/4610766.html
得到一个正态分布的方法,反复比较其他几种,最后选择了这个。
分析一下需求如下:
一个用户发100元红包,分成100份。那么每份金额随机。而分成100份的金额之和刚好等于100元。那首先每个用户至少分到0.01元红包,那每个用户分得最大红包是总金额减去分出去用户的金额,剩余用户的平均金额。
由此,便清晰了。那每取一个随机金额肯定在最小金额和最大金额之间。
上代码试试。
假如有100元要分给100个人,100个红包随机生成。代码如下:
输出结果
本文作者:
艾瑞可erik
本文链接: https://erik.xyz/2019/03/20/php-hong-bao-suan-fa/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://erik.xyz/2019/03/20/php-hong-bao-suan-fa/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!