亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

大家在搶紅包,程序員在研究紅包算法

2020-03-22 20:03:59
字體:
來源:轉載
供稿:網友
除夕全天微信用戶紅包總發送量達到10.1億次,搖一搖互動量達到110億次,紅包峰值發送量為8.1億次/分鐘。拋開微信紅包的市場價值不談,紅包本身的算法也引發了熱議,由于官方沒有給出明確的說法,各家也是眾說紛紜,小編下面也為大家帶來幾種分析。首先看看數據分析帝大多數人都做出自己的猜測,這也是在不知道內部隨機算法的時候的唯一選擇,但是大多數人沒有給出自己親自的調查結果。這里給出一份100樣本的調查抽樣樣本數據,并提出自己的猜測。
1. 錢包錢數滿足截尾正態隨機數分布。大致為在截尾正態分布中取隨機數,并用其求和數除以總價值,獲得修正因子,再用修正因子乘上所有的隨機數,得到紅包價值。這種分布意味著:低于平均值的紅包多,但是離平均值不遠;高于平均值的紅包少,但是遠大于平均值的紅包偏多。
圖1. 錢包價值與其頻率分布直方圖及其正態擬合
但看分布直方圖并不能推出它符合正態分布,但是考慮到程序的簡潔性和隨機數的合理性,這是最合乎情理的一種猜測。
越是后面的錢包,價值普遍更高

圖2. 錢包序列數與其價值關系曲線從圖2中的線性擬合紅線可以看到,錢包價值的總體變化趨勢是在慢慢增大,其變化范圍大約是一個綠色虛線上下界劃出的“通道”。(曲線可以被圍在這么一個正合乎常規的“通道”中,也從側面反映了規律1的合理性,說明了并不是均勻分布的隨機數)
從另一個平均數的圖中也可以看出這一規律。

圖3. 平均數隨序列數的變化曲線在樣本中,1000價值的錢包被分成100份,均值為10。然而在圖3中我們可以看到在最后一個錢包之前,平均數一直低于10,這就說明了一開始的錢包價值偏低,一直被后期的錢包價值拉著往上走,后期的錢包價值更高。3. 當然平均數的圖還可以透露出另一個規律,那就是最后的那一個人往往容易走運抽得比較多。因為最后那一個人是錢包剩下多少就拿多少的,而之前所有人的平均數 都低于10,所以至少保證了最后一個人會高于平均值。在本樣本中,98號錢包抽到35,而最后一份錢包抽到46。綜上,根據樣本猜測:

1. 抽到的錢大多數時候跟別人一樣少,但一旦一多,就容易多很多。
2. 越是抽后面的錢包,錢越容易多。
3. 最后一個人往往容易撞大運。點評:這種明顯很實際有差異,小編每次不管什么時候搶都是幾毛錢。
第二位同學寫了一個簡單python 代碼
據觀察,紅包分錢滿足以下幾點:1.不會有人拿不到錢
2.不會提前分完
3.錢的波動范圍很大
紅包在一開始創建的時候,分配方案就訂好了。搶紅包的時候,不過是挨個pop up而已。
因此 python 代碼如下:def weixin_divide_hongbao(money, n): divide_table = [random.randint(1, 10000)for x in xrange(0, n)] sum_ = sum(divide_table) return [x*money/sum_ for x in divide_table] 不過上述算法還有兩個小問題:1.浮點數精度問題
2.邊界值的處理第三位同學按照網上流傳的python寫了一個java的版本int j=1; while(j 1000) int number=10; float total=100; float money; double min=0.01; double max; int i=1; List math=new ArrayList(); while(i number) max = total- min*(number- i); int k = (int)((number-i)/2); if (number -i = 2) {k = number -i;} max = max/k; money=(int)(min*100+Math.random()*(max*100-min*100+1)); money=(float)money/100; total=total-money; math.add(money); System.out.println("第"+i+"個人拿到"+money+"剩下"+total); i++; if(i==number) math.add(total); System.out.println("第"+i+"個人拿到"+total+"剩下0"); System.out.println("本輪發紅包中第"+(math.indexOf(Collections.max(math))+1)+"個人手氣最佳"); j++; }第四位同學的這種算法看起來非??茖W。
他認為:
1、每個人都要能夠領取到紅包;
2、每個人領取到的紅包金額總和=總金額;
3、每個人領取到的紅包金額不等,但也不能差的太離譜,不然就沒趣味;
4、算法一定要簡單,不然對不起騰訊這個招牌;
正式編碼之前,先搭建一個遞進的模型來分析規律
設定總金額為10元,有N個人隨機領?。?br>N=1
則紅包金額=X元;
N=2
為保證第二個紅包可以正常發出,第一個紅包金額=0.01至9.99之間的某個隨機數
第二個紅包=10-第一個紅包金額;
N=3
紅包1=0.01至0.98之間的某個隨機數
紅包2=0.01至(10-紅包1-0.01)的某個隨機數
紅包3=10-紅包1-紅包2
……
int j=1; while(j 1000) int number=10; float total=100; float money; double min=0.01; double max; int i=1; List math=new ArrayList(); while(i number) max = total- min*(number- i); int k = (int)((number-i)/2); if (number -i = 2) {k = number -i;} max = max/k; money=(int)(min*100+Math.random()*(max*100-min*100+1)); money=(float)money/100; total=total-money; math.add(money); System.out.println("第"+i+"個人拿到"+money+"剩下"+total); i++; if(i==number) math.add(total); System.out.println("第"+i+"個人拿到"+total+"剩下0"); System.out.println("本輪發紅包中第"+(math.indexOf(Collections.max(math))+1)+"個人手氣最佳"); j++; } 輸入一看,波動太大,這數據太無趣了!
第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 元
改良一下,將平均值作為隨機安全上限來控制波動差
int j=1; while(j 1000) int number=10; float total=100; float money; double min=0.01; double max; int i=1; List math=new ArrayList(); while(i number) max = total- min*(number- i); int k = (int)((number-i)/2); if (number -i = 2) {k = number -i;} max = max/k; money=(int)(min*100+Math.random()*(max*100-min*100+1)); money=(float)money/100; total=total-money; math.add(money); System.out.println("第"+i+"個人拿到"+money+"剩下"+total); i++; if(i==number) math.add(total); System.out.println("第"+i+"個人拿到"+total+"剩下0"); System.out.println("本輪發紅包中第"+(math.indexOf(Collections.max(math))+1)+"個人手氣最佳"); j++; }輸出結果見下圖第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 元
小結:
小編覺得這完全可以理解成一個紅包引發的血案,小編僅僅列舉了幾個,還有一些工程學的同學直接拋出了數學模型、離散函數等等,但是無論算法是簡單還是復雜,玩的開心就夠了。PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频一区二区三区不卡| 亲子乱一区二区三区电影| 亚洲精品免费在线视频| 亚洲国产一区二区三区在线观看| 日韩欧美中文字幕在线播放| 在线精品91av| 欧美第一黄网免费网站| 欧美老妇交乱视频| 亚洲最大的免费| 91久久综合亚洲鲁鲁五月天| 欧洲美女免费图片一区| 黑人狂躁日本妞一区二区三区| 亚洲精品日韩丝袜精品| 成人久久18免费网站图片| 亚洲综合精品伊人久久| 亚洲人成网站999久久久综合| 欧美一区二区大胆人体摄影专业网站| 亚洲欧洲日产国码av系列天堂| 97在线免费视频| 国产精品电影久久久久电影网| 高清欧美性猛交xxxx| 日韩免费观看av| 国产精品大片wwwwww| 亚洲精品av在线播放| 国产美女精品视频| 久久久精品中文字幕| 成人一区二区电影| 久久男人资源视频| 亚洲久久久久久久久久久| 亚洲人成免费电影| 2019中文字幕在线| 国产一区二区三区久久精品| 国产精品久久久av久久久| 亚洲色图激情小说| 这里只有精品久久| 亚洲欧美激情另类校园| 久久九九全国免费精品观看| 欧美亚洲第一页| 国产成人亚洲综合91精品| 国产精品香蕉在线观看| 欧美精品激情在线观看| 亚洲少妇激情视频| 成人美女av在线直播| www.日本久久久久com.| 久久久免费观看视频| 日韩网站免费观看高清| 国产精品视频免费观看www| 国产精品成人v| 亚洲色在线视频| 久久免费国产视频| 成人97在线观看视频| 美女福利精品视频| 操91在线视频| 欧美国产日韩中文字幕在线| 亚洲午夜性刺激影院| 韩国精品美女www爽爽爽视频| 久久久久久香蕉网| 欧美精品在线极品| 久久久久久12| 欧美日韩国产一区中文午夜| 精品久久久久久久中文字幕| 精品欧美aⅴ在线网站| 欧美日韩中文字幕日韩欧美| 91视频九色网站| 成人黄色网免费| 国产视频亚洲精品| 亚洲视频777| 91久久精品美女| 日韩av最新在线观看| 欧美激情视频网站| 亚洲综合在线小说| 亚洲大胆美女视频| 亚洲日韩欧美视频一区| 自拍亚洲一区欧美另类| 亚洲人在线观看| 成人乱人伦精品视频在线观看| 91大神福利视频在线| 伊人伊人伊人久久| 亚洲午夜性刺激影院| 国产精品久久久久久久久久久新郎| 中文欧美在线视频| 国产精品视频网址| 欧美成人小视频| 黑人巨大精品欧美一区二区三区| 欧美一区二区视频97| 国产精品久久久久国产a级| 欧美精品免费看| 欧美肥臀大乳一区二区免费视频| 久久伊人91精品综合网站| 68精品久久久久久欧美| 亚洲国产欧美自拍| 亚洲视频综合网| 欧美激情亚洲另类| 久久久av一区| 久久这里只有精品视频首页| 欧美精品在线免费观看| 精品国产乱码久久久久酒店| 在线观看日韩欧美| 国产精品一区二区三区在线播放| 久久手机精品视频| 精品五月天久久| 成人在线视频福利| 亚洲欧美日韩综合| 亚洲最大福利视频| 亚洲老头老太hd| 欧美一级黑人aaaaaaa做受| 国产一区二区三区在线观看视频| 91精品在线一区| 欧美激情日韩图片| 97在线免费视频| 狠狠干狠狠久久| 91欧美激情另类亚洲| 亚洲高清免费观看高清完整版| 亚洲老头老太hd| 另类色图亚洲色图| 久久伊人精品一区二区三区| 日韩电影在线观看免费| 欧美高清性猛交| 欧美日韩视频免费播放| 欧美精品videos另类日本| 98精品国产自产在线观看| 国产精品成人久久久久| 国产拍精品一二三| 国产精品美女主播在线观看纯欲| 裸体女人亚洲精品一区| 欧美日韩一区二区在线| 久久亚洲精品毛片| 亚洲国产精品网站| 日韩电影中文 亚洲精品乱码| 久久久最新网址| 国产精品亚洲欧美导航| 欧美在线视频免费观看| 久久久久久久久综合| 日韩精品在线视频| 国产欧美日韩精品丝袜高跟鞋| 法国裸体一区二区| 国产日韩精品视频| 国产视频在线一区二区| 成人欧美一区二区三区黑人孕妇| 日韩av在线免费观看| 欧美视频在线视频| 久久久久久国产三级电影| 欧美成人高清视频| 日韩精品在线观看视频| 国产精品扒开腿爽爽爽视频| 日韩久久免费电影| 欧美日韩裸体免费视频| 国产欧美在线播放| 4p变态网欧美系列| 国产精品久久久久av| 91丝袜美腿美女视频网站| 国产成人精品在线播放| 狠狠色狠狠色综合日日五| 久久久精品久久久久| 91精品视频免费| 久久亚洲精品成人| 国产91精品视频在线观看| 国产精品r级在线| 色综合久久精品亚洲国产| 亚洲最大中文字幕| 国产国产精品人在线视| 欧美人交a欧美精品| 欧美日韩国产综合视频在线观看中文| 尤物九九久久国产精品的特点|