利用PHP怎么实现一个随机红包算法

  介绍

利用PHP怎么实现一个随机红包算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>一、整体设计

算法有很多种,可以自行选择,主要的“架构,是这样的,用复述,12月()命令去限流,用mysql去记录各种需要的数据

<强>二、红包算法

简便起见,红包金额用整数表示,假设每个红包里边有x个糖豆,每个人最少一个豆

第一种:每个红包的最大金额是:(剩余金额/剩余红包数)* 2,需要开始的时候预先分配给每个人一个豆

function  randBean (total_bean美元,,total_packet美元)   {   时间=美元才能min_bean  1;   时间=美元才能max_bean  5000;   时间=美元才能range  2;   时间=美元才能total_bean  total_bean 美元;作用;total_packet 美元;*,min_bean美元;,//每个人预留一个最小值   时间=美元才能list  [];   时间=美元才能min  1;   而才能(count($列表),& lt;, total_packet美元){   ,,,max 美元;=,地板(total_bean 美元/,total_packet美元),*,美元范围;   ,,,bean 美元;=,兰德(min美元,,max);   ,,,if  (=$ bean  & lt; max_bean 美元;作用;1),{   ,,,,,美元名单[],=,bean美元;   ,,,,,total_bean 美元;-=,bean美元;   ,,,}   ,,}   美元才能列表[],=,total_bean美元;//剩余的金豆作为最后一个红包//合才能并   foreach 才能;(list 美元;as  k 美元;=祝辞,美元v), {   ,,,美元($ k)列表,+=,min_bean美元;   ,,}   return 才能;美元列表;   }

多次统计

利用PHP怎么实现一个随机红包算法

第二种,对其简单扩展一下,每个红包的最大金额是:(剩余金额/剩余红包数)* 3;但是要求每次最少发2个红包

第三种,线段法,随机生成几个数字,将一个直线分成几段,每段的长度(这个波动比较大,不是很平均,如果限制了每个红包的大小,会比较麻烦)

function  abc  (total_bean美元,,total_packet美元)   {   时间=美元才能min  1;   时间=美元才能max  total_bean 美元;1;   时间=美元才能list  [];   时间=美元才能maxLength  total_packet 美元;作用;1;   而才能(count($列表),& lt;,美元的最大长度),{   ,,,rand 美元;=,mt_rand (min美元,,max);   ,,,空列表($[$兰德]),,,,($列表(兰德美元),=,兰德美元);   ,,}   美元才能列表[0],=,0;,//第一个   美元才能列表(total_bean美元),=,total_bean美元;,//最后一个   排序列表($);才能,//不再保留索引   时间=美元才能beans  [];   for 才能;($ j=1;, j<美元;=$ total_packet;, $ j + +), {   ,,,美元bean[],=,列表[j]美元美元,安康;美元列表(j - 1美元);   ,,}//才能,return 豆类;美元   echo 才能;& # 39;& lt; pre> & # 39;;, print_r (bean)美元;,echo 函数($ bean);   }   abc (100000,, 3);

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

利用PHP怎么实现一个随机红包算法