php - 求教分配材料的演算法
PHPz
PHPz 2017-05-24 11:33:26
0
2
1177

現在有答案題得材料的活動,總共三天
4種材料1,2,3,4。材料4是稀缺材料。
答案正確發給玩家一種材料,第一天材料4不出現,第二天材料4出現不多於50份,到活動結束,材料4不多於200份(因為中獎名單得限制在200人內)
得到材料4的玩家需要之前已經集滿1,2,3,以便可以中獎
這個分配材料的演算法該怎麼寫才最好?

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
淡淡烟草味

這無非就是敬業福的玩法。 123隨便給,不用限制數量,只要控制好4的數量即可。第一天,獎項3個,後面兩天獎項變成4個。抽獎,抽到4判斷是否超過當天限額,超過了,就隨機返回1、2、3的其中一個即可。

漂亮男人

雖然沒做過這種東東,但是可以表達一下個人想法
由於你沒法確定出用戶抽獎的人數和各個材料的數據(非材料四)
二對材料四顯示,第一日不出現,第二日不多於50,活動結束不多於200
所以材料四機率和材料1,2,3系分開,即計算出材料四機率,不出就計算1,2,3(直接用隨機數就ok)

變數有
材料四總數,活動開始時間,結束時間,當前時間,材料四第二日顯示數,抽出的編碼

代碼
判斷是否為第一日
是材料四機率0 隨機分配123
否判斷是否為第一日
是判斷材料四抽出總數是否超過50 是的話直接隨機分配123,否的話,計算材料四概率材料四機率可以以材料四的剩餘總數為分子,當前抽獎總數為分母,當然為防止分母數過低,應該設定個最低值,假如計算不出材料四,即隨機分配材料123
不滿足第一二日,就為第三日,計算邏輯和計算第二日類似

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!