微信紅包的分配算法,在知乎上已經有人討論過了,詳見《微信紅包的隨機算法是怎樣實現的?》。基本的原則是:紅包分配的錢數滿足截尾正態隨機數分布。 大致為在截尾正態分布中取隨機數,並用其求和數除以總價值,獲得修正因子,再用修正因子乘上所有的隨機數,得到紅包價值。 這種分布意味着:低於平均值的紅包 ...
一 完全隨機紅包 給定總金額,每個紅包的金額范圍和紅包的個數,隨機生成符合條件的紅包金額。 轉成數學語言:n個隨機數,總和為sum,每個隨機數的范圍為 min,max 。求隨機方案。 這里先聲明一下,什么樣的算法是合理的呢,基本需要具備以下兩個特點: 隨機。這里認為生成紅包金額一定要隨機,即不能出現大量紅包金額落在同一值 分布。范圍內金額都有得到分配的機會。 一 方案一: 其實對於金錢應該用dec ...
2017-06-28 17:35 2 2942 推薦指數:
微信紅包的分配算法,在知乎上已經有人討論過了,詳見《微信紅包的隨機算法是怎樣實現的?》。基本的原則是:紅包分配的錢數滿足截尾正態隨機數分布。 大致為在截尾正態分布中取隨機數,並用其求和數除以總價值,獲得修正因子,再用修正因子乘上所有的隨機數,得到紅包價值。 這種分布意味着:低於平均值的紅包 ...
搶紅包的需求分析 搶紅包的場景有點像秒殺,但是要比秒殺簡單點。因為秒殺通常要和庫存相關。而搶紅包則可以允許有些紅包沒有被搶到,因為發紅包的人不會有損失,沒搶完的錢再退回給發紅包的人即可。另外像小米這樣的搶購也要比淘寶的要簡單,也是因為像小米這樣是一個公司的,如果有少量沒有搶到,則下次再搶,人工 ...
前段時間有個項目需要用到紅包算法,本以為簡單,細想之下有點復雜。於是就百度了一下,沒想到查出了不少,有些寫的很復雜。由於時間有點緊,我就找了一個簡單點的。然后參考着寫一個。參考的地址是:https://blog.csdn.net/gorgle/article/details ...
...
場景: 生成10個隨機紅包, 獎池總金額10000, 最小500, 最大1000,獎池全部分配完。 分析: 第一想法簡單, 直接生成500-1000之間的隨機數,直接生成10個, 直接上代碼。這種寫法的問題在於最后一個金額生成的時候會出現問題,會有出現超過最大金額的可能性 ...
public $bonus;//紅包 public $bonusNum;//紅包個數 public $bonusMoney;//紅包總金額 public $moneySingleMax;//單個紅包最大限制 public $moneySingleMin ...
2017年1月14日 14:19:14 星期六 一, 整體設計 算法有很多種, 可以自行選擇, 主要的"架構" 是這樣的, 用redis decr()命令去限流, 用mysql去記錄各種需要的數據 二, 紅包算法 簡便起見, 紅包金額用整數表示, 假設每個紅包里邊有x個糖豆, 每個人最少 ...
public class hongbao { @Test public void testHongbao(){ hb(100, 100, 0.01);//金額,個數,最少值 } v ...