首頁  >  文章  >  web前端  >  JS實作微信紅包隨機演算法(附程式碼)

JS實作微信紅包隨機演算法(附程式碼)

php中世界最好的语言
php中世界最好的语言原創
2018-05-15 11:47:164387瀏覽

這次帶給大家JS實作微信紅包隨機演算法(附程式碼),JS實作微信紅包隨機演算法的注意事項有哪些,以下就是實戰案例,一起來看一下。

我們假設有一個100元的紅包,要發給10個人。為了確保公平,演算法需要確保以下的原則:

  • 每個人最少能搶到0.01元

  • 每個人的機會平等

  • 所有人的金額總和等於100元

#1.簡單的隨機函數實現

很多朋友的一般想法是:

第一步:從0-100隨機一個數,得到第一個紅包金額。

第二步:從0-剩餘金額隨機一個數,得到第二個紅包金額。

第三步:...

最後一步把剩餘的錢都給最後一個人。

以此類推,得到全部的10 個紅包。但不知道大家注意到沒有,這樣存在明顯的 不公平 。先搶的人比較有優勢,第一個人的隨機範圍是0-100,有可能得到較大的金額。而最後一個人的隨機範圍就會很小,如果第一個人搶到了90塊錢,那麼最後一個人就不可能有的到超過10塊錢的機會。我們用程式碼模擬一下這個過程:

 

測試結果如下:

 

細心的朋友會注意到,餘額的值不正確,這是JavaScript浮點數運算的已知問題。當然解決的方式很多,如果你有好的辦法歡迎你留言給我。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

vue判斷dom內class使用情況

處理Vue專案編譯後部署在非網站根目錄方法詳解

以上是JS實作微信紅包隨機演算法(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn