tft每日頭條

 > 圖文

 > 微信紅包的數據和背後的意義

微信紅包的數據和背後的意義

圖文 更新时间:2024-10-17 02:57:32

微信搶紅包究竟有什麼學問呢,為什麼有的人隻能搶到幾分錢,有的人卻可以搶到很大的金額呢?為什麼有的人經常是手氣最佳,有的人卻很少拿手氣最佳呢?

本文将揭曉微信紅包背後的秘密。

【原理篇】

規律分析

微信紅包金額是如何計算出來的?有規律可循嗎?對于這個問題有無數“大神”們都進行過推測和測試,知乎上也有很多大v甚至給出了紅包的分配算法。大緻如下:

1.随機,額度在0.01和剩餘平均值×2之間。例如:發100塊錢,總共10個紅包,那麼平均值是10塊錢一個,那麼發出來的紅包的額度在0.01元~20元之間波動。

當前面3個紅包總共被領了40塊錢時,剩下60塊錢,總共7個紅包,那麼這7個紅包的額度在:0.01~(60/7×2)=17.14之間。

注意:這裡的算法是每被搶一個後,剩下的會再次執行上面的這樣的算法(Tim老師也覺得上述算法太複雜,不知基于什麼樣的考慮)。

這樣算下去,會超過最開始的全部金額,因此到了最後面如果不夠這麼算,那麼會采取如下算法:保證剩餘用戶能拿到最低1分錢即可。

如果前面的人手氣不好,那麼後面的餘額越多,紅包額度也就越多,因此實際概率一樣的。

2.拍腦袋算法,也就是純粹的随機運算。随機算法實現代碼如下:

public static double getRandomMoney(LeftMoneyPackage _leftMoneyPackage) {

// remainSize 剩餘的紅包數量

// remainMoney 剩餘的錢

if (_leftMoneyPackage.remainSize == 1) {

_leftMoneyPackage.remainSize--;

return (double) Math.round(_leftMoneyPackage.remainMoney * 100) / 100;

}

Random r = new Random();

double min = 0.01; //

double max = _leftMoneyPackage.remainMoney / _leftMoneyPackage.remainSize * 2;

double money = r.nextDouble() * max;

money = money <= min ? 0.01: money;

money = Math.floor(money * 100) / 100;

_leftMoneyPackage.remainSize--;

_leftMoneyPackage.remainMoney -= money;

return money;

}

這樣的運算結果雖然會出現兩個最佳,但是手氣最佳隻有一個,先搶到的那個最佳。

我們隻要知道以上内容便足夠理解微信紅包是如何計算出來的了,那麼接下來的問題是,為什麼有的人搶的金額很大,有的人搶的金額很小呢?搶紅包獲取的金額和搶紅包的順序有什麼關系呢?每個人獲取紅包金額的可能性是相同的嗎?第幾個搶紅包的人最容易手氣最佳呢?

規律測試

首先,通過模拟實驗可以知道,這個遊戲是公平的,在紅包拆開之前,每個人,無論先後順序,搶到的紅包金額的數學期望都是一樣的,如果100元分成5個紅包,那麼每個人搶到的金額的數學期望就是20元,但有趣的是,雖然數學期望一樣,但概率密度卻有很大差别。

為了說明這一點,甚至有人制造了一個蒙特卡洛發生器,用來模拟用戶拆紅包的行為。具體過程這裡不再贅述,本文隻給出實驗結論如下:

1)紅包大小服從截尾正态分布,其好處是減少抽取紅包大小分布的方差,讓更多的人抽取的紅包在均值附近,同時仍給一小部分人抽取大紅包的機會,總體來說增加了紅包抽取人的積極性和遊戲的公平性;

2)抽取紅包大小與抽取紅包先後無相關性。一種可能的紅包産生機制是:當發紅包者<準備紅包>的時候,程序自動依照截尾分布産生了相應大小,相應個數的紅包,然後随機發給抽取紅包的人。同樣,這樣的一個随機過程有助于增加遊戲的公平性,也減少了紅包抽取人投機操作(亦即譬如故意等錢包半空的時候再抽取)的動機。我在知乎上看到一位朋友談到她的騰訊工作的朋友确認了紅包産生是在<準備紅包>時就完成了的,因此也在一定程度上增強了我的這種推測的可信度。

3)微信紅包分配金額是拆的時候實時算出來,不是預先分配的,采用的是純内存計算,不需要預算空間存儲。

采取實時計算金額的考慮:預算需要占存儲,實時效率很高,預算才效率低。

這也就是為什麼很多時候明明搶到紅包可點開後發現沒有的原因了。

微信紅包的數據和背後的意義(深度剖析微信紅包)1

最有參考價值的結論:

1.先搶後搶拿到紅包的大小的期望是大緻相等的,所以還是先下手搶吧。

2.後搶的人方差大(依賴前面人搶的多少),波動較大,有較大幾率拿到“手氣最佳”。2014年的紅包一點開就知道金額,分兩次操作,先搶到金額,然後再轉賬。2015年的紅包的拆和搶是分離的,需要點兩次,因此會出現搶到紅包了,但點開後告知紅包已經被領完的狀況。進入到第一個頁面不代表搶到,隻表示當時紅包還有。

【防騙篇】

1. “紅包接龍”群騙局,讓很多微友樂此不疲,其實,那些玩法都是群主設置規則,本身就不公平,群主是穩賺不賠,赢了就撤的是小赢家,剩下的參與者都是輸家。

2.“尾數抽頭”騙局。這種玩法更是莊家穩賺,因為沒有被領完的紅包可以繼續轉發給其他人或群裡,且微信不會有任何提示。所以請友友們理智參與,拒絕賭博謹防受騙。

3.紅包外挂騙局。目前據小編了解,比較有效的紅包插件隻有自動搶紅包插件,其功能也是比較簡單的自動搶、熄屏搶、延時搶、自動回複等。這些插件都是免費的,有機會小編可以提供給大夥。

另外還有一些号稱尾數透視大小包控制的插件,需要收費的,小編可以告訴大家,都是騙人的。根據上面分析的紅包金額分配原理,是不可能預先抓取到分配數據的。至少目前還沒有能夠控制微信紅包數據的算法,所以千萬不要相信那些兜售紅包軟件的,你這邊付款,他那邊立刻拉黑你。

微信紅包的數據和背後的意義(深度剖析微信紅包)2

【姿勢篇】

1.接龍紅包群,根據大量經驗證明,往往是搶自己的容易最小,而且“手氣最佳”經常出現在後面幾個人。這樣的話,我們玩紅包群最小接龍的時候,可以刻意晚一點搶,這樣可以最大程度避免最小,當然,晚一點搶也容易落空,但落空總比最小要好,起碼不會賠,還可以繼續搶。尤其是自己發紅包時,最好晚一點搶。

2.謹慎使用外挂,避免微信賬号被封。

3.微信紅包是一種娛樂工具,親朋好友一起玩一玩,增添一點節日氣氛是可以的。但堅決抵制利用微信紅包進行任何形式的賭博,開啟健康微信新生活。

微信紅包的數據和背後的意義(深度剖析微信紅包)3

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved