欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)微信紅包算法及問(wèn)題解決方法

 更新時(shí)間:2018年04月26日 09:43:53   作者:OwenGitHub1  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)微信紅包算法及遇到的問(wèn)題解決方法,需要的朋友可以參考下

專欄停更了很久,向大家說(shuō)聲抱歉。今天的主題是使用JavaScript模擬實(shí)現(xiàn)微信搶紅包的算法。這個(gè)題目看起來(lái)很簡(jiǎn)單,不就是一個(gè)隨機(jī)函數(shù)嗎?我們一起實(shí)現(xiàn)看看。

我們假設(shè)有一個(gè)100元的紅包,要發(fā)給10個(gè)人。為了保證公平,算法需要保證以下的原則:

  • 每個(gè)人最少能搶到0.01元
  • 每個(gè)人的機(jī)會(huì)平等
  • 所有人的金額之和等于100元

1.簡(jiǎn)單的隨機(jī)函數(shù)實(shí)現(xiàn)

很多朋友的一般思路是:

第一步:從0-100中隨機(jī)一個(gè)數(shù),得到第一個(gè)紅包金額。

第二步:從0-剩余金額中隨機(jī)一個(gè)數(shù),得到第二個(gè)紅包金額。

第三步:...

最后一步把剩余的錢都給最后一個(gè)人。

以此類推,得到全部的10 個(gè)紅包。但是不知道大家注意到?jīng)]有,這樣存在明顯的 不公平 。先搶的人比較有優(yōu)勢(shì),第一個(gè)人的隨機(jī)范圍是0-100,有可能得到較大的金額。而最后一個(gè)人的隨機(jī)范圍就會(huì)很小,如果第一個(gè)人搶到了90塊錢,那么最后一個(gè)人就不可能有的到超過(guò)10塊錢的機(jī)會(huì)。我們用代碼模擬一下這個(gè)過(guò)程:

 

測(cè)試結(jié)果如下:

 

細(xì)心的朋友會(huì)注意到,余額的值不正確,這是JavaScript浮點(diǎn)數(shù)運(yùn)算的已知問(wèn)題。當(dāng)然解決的方式有很多,如果你有好的辦法歡迎你給我留言。

總結(jié)

以上所述是小編給大家介紹的JavaScript實(shí)現(xiàn)微信紅包算法及問(wèn)題解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • js輪播圖無(wú)縫滾動(dòng)效果

    js輪播圖無(wú)縫滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了js輪播圖無(wú)縫滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • bootstrap模態(tài)框示例代碼分享

    bootstrap模態(tài)框示例代碼分享

    這篇文章主要為大家詳細(xì)介紹了bootstrap模態(tài)框示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 捕獲瀏覽器關(guān)閉、刷新事件不同情況下的處理方法

    捕獲瀏覽器關(guān)閉、刷新事件不同情況下的處理方法

    在做一些關(guān)于會(huì)員在線的問(wèn)題時(shí),往往我們要根據(jù)覽器是否關(guān)閉來(lái)判斷用戶是否下線,然后再?gòu)膕ession和application中將此用戶移除,下面與大家分享下具體的捕捉方法
    2013-06-06
  • cocos creator Touch事件應(yīng)用(觸控選擇多個(gè)子節(jié)點(diǎn)的實(shí)例)

    cocos creator Touch事件應(yīng)用(觸控選擇多個(gè)子節(jié)點(diǎn)的實(shí)例)

    下面小編就為大家?guī)?lái)一篇cocos creator Touch事件應(yīng)用(觸控選擇多個(gè)子節(jié)點(diǎn)的實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就想給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • JavaScript Ajax實(shí)現(xiàn)異步通信

    JavaScript Ajax實(shí)現(xiàn)異步通信

    這篇文章主要為大家詳細(xì)介紹了JavaScript Ajax實(shí)現(xiàn)異步通信的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 可能是全網(wǎng)最詳細(xì)小程序中使用echarts的教程

    可能是全網(wǎng)最詳細(xì)小程序中使用echarts的教程

    在開(kāi)發(fā)微信小程序時(shí),有需求需要使用到柱狀圖,餅圖等圖表,下面這篇文章主要給大家介紹了關(guān)于小程序中使用echarts的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Javascript繼承機(jī)制的設(shè)計(jì)思想分享

    Javascript繼承機(jī)制的設(shè)計(jì)思想分享

    我花了很多時(shí)間,學(xué)習(xí)這個(gè)部分,還做了很多筆記。但是都屬于強(qiáng)行記憶,無(wú)法從根本上理解。
    2011-08-08
  • UNiapp 微信小程序漸變不生效的解決方案

    UNiapp 微信小程序漸變不生效的解決方案

    這篇文章主要介紹了UNiapp 微信小程序漸變不生效的解決方案,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 微信小程序自定義彈窗實(shí)現(xiàn)詳解(可通用)

    微信小程序自定義彈窗實(shí)現(xiàn)詳解(可通用)

    這篇文章主要介紹了微信小程序自定義彈窗實(shí)現(xiàn)詳解(可通用),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 原生js+ajax分頁(yè)組件

    原生js+ajax分頁(yè)組件

    這篇文章主要為大家詳細(xì)介紹了原生js+ajax分頁(yè)組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評(píng)論