麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 邏輯算法 > 正文

基于PHP微信紅包的算法探討

2020-03-22 16:51:15
字體:
來源:轉載
供稿:網友
突發(fā)奇想給校友微信群發(fā)了紅包,我設定紅包總額為10元,支持28個人隨機領取。
于是一個有趣的結果出現(xiàn)了:
A 領取了 0.26元
B 領取了 0.29元
C 領取了 0.02元
D 領取了 0.56元
E 領取了 0.64元
……
微信是采用什么樣的算法做到的?簡單百度了下,目前尚未有官方的說明,僅僅在知乎里有一個較為熱門的討論,鏈接戳這里,不過他們討論的太過于深入,有掉坑之嫌。
我按照自己的邏輯嘗試了下,這個算法需要滿足以下幾點要求:
1、每個人都要能夠領取到紅包;
2、每個人領取到的紅包金額總和=總金額;
3、每個人領取到的紅包金額不等,但也不能差的太離譜,不然就沒趣味;
4、算法一定要簡單,不然對不起騰訊這個招牌;
正式編碼之前,先搭建一個遞進的模型來分析規(guī)律
設定總金額為10元,有N個人隨機領取:N=1
則紅包金額=X元;N=2
為保證第二個紅包可以正常發(fā)出,第一個紅包金額=0.01至9.99之間的某個隨機數
第二個紅包=10-第一個紅包金額;N=3
紅包1=0.01至0.98之間的某個隨機數
紅包2=0.01至(10-紅包1-0.01)的某個隨機數
紅包3=10-紅包1-紅包2……
至此,規(guī)律出現(xiàn)啦!開始編碼!
Php代碼
header("Content-Type: text/html;charset=utf-8");//輸出不亂碼,你懂的 $total=10;//紅包總額 $num=8;// 分成8個紅包,支持8人隨機領取 $min=0.01;//每個人最少能收到0.01元 for ($i=1;$i $num;$i++) $safe_total=$total-($num-$i)*$min;//隨機安全上限 $money=mt_rand($min*100,$safe_total*100)/100; $total=$total-$money; echo '第'.$i.'個紅包:'.$money.' 元,余額:'.$total.' 元 br/ echo '第'.$num.'個紅包:'.$total.' 元,余額:0 元'; 輸入一看,波動太大,這數據太無趣了!
第1個紅包:7.48 元,余額:2.52 元
第2個紅包:1.9 元,余額:0.62 元
第3個紅包:0.49 元,余額:0.13 元
第4個紅包:0.04 元,余額:0.09 元
第5個紅包:0.03 元,余額:0.06 元
第6個紅包:0.03 元,余額:0.03 元
第7個紅包:0.01 元,余額:0.02 元
第8個紅包:0.02 元,余額:0 元
改良一下,將平均值作為隨機安全上限來控制波動差
Php代碼
header("Content-Type: text/html;charset=utf-8");//輸出不亂碼,你懂的 $total=10;//紅包總額 $num=8;// 分成8個紅包,支持8人隨機領取 $min=0.01;//每個人最少能收到0.01元 for ($i=1;$i $num;$i++) $safe_total=($total-($num-$i)*$min)/($num-$i);//隨機安全上限 $money=mt_rand($min*100,$safe_total*100)/100; $total=$total-$money; echo '第'.$i.'個紅包:'.$money.' 元,余額:'.$total.' 元 br/ echo '第'.$num.'個紅包:'.$total.' 元,余額:0 元'; 輸出結果見下圖
第1個紅包:0.06 元,余額:9.94 元
第2個紅包:1.55 元,余額:8.39 元
第3個紅包:0.25 元,余額:8.14 元
第4個紅包:0.98 元,余額:7.16 元
第5個紅包:1.88 元,余額:5.28 元
第6個紅包:1.92 元,余額:3.36 元
第7個紅包:2.98 元,余額:0.38 元
第8個紅包:0.38 元,余額:0 元以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持phpstudy。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊人yinren22综合网色 | 国产青草视频在线观看视频 | 国产欧美日韩在线不卡第一页 | av在线看网站 | 牛牛热这里只有精品 | 亚洲视频在线观看免费 | 91美女啪啪 | 亚洲成人福利在线观看 | 看毛片的网址 | 欧美一级一片 | 成人一区二区三区在线 | 一级免费毛片 | 天天操天天骑 | 国产99页| av电影在线观看网址 | 亚洲男人天堂 | 日日鲁一鲁视频 | 亚洲欧美在线看 | 免费视频a | 午夜a狂野欧美一区二区 | 日本成人高清视频 | 龙的两根好大拔不出去h | 激情在线视频 | 日韩黄色免费在线观看 | 亚洲第一色婷婷 | 亚洲成人在线视频网 | 91成人免费看 | 中文字幕视频在线播放 | 日本成人在线免费 | 亚洲精品成人久久久 | h视频在线免费看 | 久久国产精品久久久久久 | 黄色小视频免费在线观看 | 操皮视频 | 精品国产一区二区三区四区在线 | 免费黄色大片在线观看 | www.99xxxx.com | 一级美女大片 | 九九综合视频 | 大西瓜永久免费av在线 | 一区二区久久久久草草 |