手机版

php实现的微信红包算法分析(非官方)

时间:2021-10-02 来源:互联网 编辑:宝哥软件园 浏览:

本文描述了用php实现的微信红包算法。分享给大家参考。具体如下:

最近一直在微信群里体验红包功能。红包有两种类型:

1.普通红包。

2.争取红包。

普通红包不用分析,但大锅饭的原则是平分。

为幸运红包而战,关乎运气。有的人能抢到很多钱,有的人抢到的钱很少。当然,不仅仅是先抢到很多。归根结底,这是随机的。

想了想,写下来看看能不能实现类似的功能(我不敢说是算法)。

//$bonus_total红包总金额/$bonus_count红包数量/$bonus_type红包类型1=幸运红包0=普通红包函数rand bonus ($ bonus _ total=0,$ bonus _ count=3,$ bonus _ type=1){ $ bonus _ items=array()。//待除结果为$ bonus _ balance=$ bonus _ total//每次划分后的余额为$ bonus _ avg=number _ format($ bonus _ total/$ bonus _ count,2);//每个红包平均多少钱$ I=0;而($ I $ bonus _ count){ if($ I $ bonus _ count-1){ $ rand=$ bonus _ type?(兰特(1美元,$ bonus _ balance * 100-1)/100):美元bonus _ avg//根据红包类型$bonus_items[]=$rand计算当前红包金额;$奖金_余额-=$兰特;} else { $ bonus _ items[]=$ bonus _ balance;//最后一个红包直接承包所有最终金额,确保发放总金额正确} $ I;}返回$ bonus _ items}好,现在就来体验一下。

//送3个幸运红包,总金额为100元$奖金_物品=randBonus(100,3,1);//检查生成的红包var _ dump($ bonus _ items);//检查总金额是否正确,看看微信有没有坑我们的钱var _ dump(array _ sum($ bonus _ items));另一个版本使用数组实现,原理类似:

函数sendRandBonus($total=0,$count=3,$ type=1){ if($ type==1){ $ input=range(0.01,$total,0.01);if($ count 1){ $ rand _ keys=(array)array _ rand($ input,$ count-1);$ last=0;foreach($ rand _ keys as $ I=$ key){ $ current=$ input[$ key]-$ last;$ items[]=$ current;$ last=$ input[$ key];} } $ items[]=$ total-array _ sum($ items);} else { $ avg=number _ format($ total/$ count,2);$ I=0;而($i$count){ $items[]=$i$count-1?$ avg :($ total-array _ sum($ items));$ I;} }返回$ items}希望这篇文章对大家的php编程有所帮助。

版权声明:php实现的微信红包算法分析(非官方)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。