搜尋

首頁  >  問答  >  主體

php - 求教分配材料的演算法

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

PHPzPHPz2733 天前1195

全部回覆(2)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-05-24 11:35:26

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

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-24 11:35:26

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

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

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

    回覆
    0
  • 取消回覆