这是一款赛狗游戏,有视频,每个视频都知道前3名获胜者,玩家在X限制时间内选择获胜者。根据他们的投注,算法选择适当的视频,以将每个销售点/客户的返回百分比保持在其先前指定的数量。
像这样的东西:
% Returning Specific Return Configuration, range: 50%~90%:
POS1: 65%
POS2: 78%
POS3: 50%
...
...
POSN: XX%
每个 POS 都有不同的收入,应根据其配置返回:
Ex: [pos] [cashes] [should return] [returns] [step]
-------------------------------------------------------
POS1 100 65 60 44
POS2 100 78 50 45
POS3 500 250 150 45
基于某些组合发生回报较低,因此剩余的被视为债务。这是因为每个商店都在销售以下数字:
POS1: [Cashes] ["Winners" Number] [Possible Return]
50 12 150
50 13 60
因此,该算法尝试在有限的可能性中找到最接近的组合,该组合返回该值 + 累积的月债务,基于每个步骤,例如:
sum([should return]) of step 45
+ lowest not returned part of the month ([should return]-[returns])
of the stores present at that step (45)
在相对较长的时期(约 30 天,即流程的持续阶段)结束时,具体的退货是:
POS1: 64.4%
POS2: 72.9%
POS3: 49.2%
...
它现在工作了 8 个月,没有明显的问题,但如果我已经足够清楚,这是正确的逻辑吗?
每个步骤持续 5 分钟
*** 编辑 ***
碰巧在返回的百分比上使用一些额外的奖金负差,因此“客户债务”,取决于值会导致每一步的返回阻塞,直到 POS 返回到它的百分比。
因此,我将“本月未返回的最低部分([应该返回]-[返回])”更改为在该步骤中随机挑选的玩家。这有帮助但还不够,因为当那个消极的玩家 pos 在许多连续的步骤中独自一人时......实际上它并没有带来任何回报。这不是一件好事,所以我从这个负债务中添加了一些实际使用的限制,随机因素的范围是
sum([should return]) of step 45
+ ((case when the debt is negative under some relative "considerable" limit)
random[range(-0.01, 0.2)] * not returned part of the month ([should return]-[returns])
else the ([should return]-[returns]))
实际上 range(-0.01, 0.2) 意味着 pos 可以在一些相对限制下返回,实际上 store 再次开始返回,即使是单独玩。