我的游戏一开始有4个事件:
Event1,Event2,Event3,Event4
在某个时间,只有其中一个是正确的事件。我总是知道哪一个是正确的事件。
我想构建一个机器人,为每个事件分配一个正确事件的百分比,在[0-100]之间(每个事件的总百分比必须为100)。机器人应该有3个级别。在1级时,他有0.95的概率给予正确事件更多的百分比,在2级,0.65和3级,0.35。
我怎样才能做到这一点?我花了很多时间思考这个问题,并且无法找到一种简单的方法。
---更新示例
对于所有示例,我们假设输入为:
事件1:错了 Event2:正确 Event3:错了 Event4:错了 Bot Level:将改变在上面提供的所有输出情况中,从1开始并以值3结束在上一次输出中。
输出案例:
活动1:20% 活动2:70% 活动3:5% 赛事4:5%
让我们假设僵尸程序现在处于第2级,而正确的事件是2,示例输出是:
活动1:15% 活动2:48% 活动3:15% 事件4:22%
让我们假设僵尸程序现在处于第3级,而正确的事件是2,示例输出是:
活动1:17% 活动2:35% 活动3:30% 赛事4:18%
我希望1级机器人有95%的概率给予正确事件更多百分比,2级有65%概率给予正确事件更多百分比,而3级有35%给予更多正确事件的百分比......我也希望,如示例中所示,在第1级中,百分比值之间的差异大于第2级,并且第2级中百分比值之间的差异大于第3级中的百分比值之间的差异..由于机器人在每个级别都有失败的可能性,有时百分比较高的事件可能是错误的事件。我认为现在我想要的很清楚。
答案 0 :(得分:1)
你想要的是每个事件加起来为1的概率权重。然后这样做:
生成0到1.0之间的随机数
current weight = 1
for each event probability weight in ascending order
current weight -= event weight
if random number >= current weight
we have our event
所以我们说event1为0.3,event2为0.5,event3为0.1,event4为0.1。
然后我们会向下检查是否
random number is >= 0.9 (between 1 and 0.9) event4
random number is >= 0.8 (between 0.9 and 0.8) event3
random number is >= 0.5 (between 0.8 and 0.9) event1
random number is >= 0 (between 0.5 and 0) event2