随机模块上增加/缩小的机会

时间:2020-05-02 10:00:15

标签: python random probability

例如,我正在编写一个游戏。我需要点钱 。箱子是免费的,但是钥匙是有偿的。如何增加 关键需要的高级宝箱 的机会,如何减少 完全免费的高级宝箱 的机会>

import random 

list1 = ["fully free premium chest", "key needed premium chest", "fully free normal chest"]


random.choice(list1)

1 个答案:

答案 0 :(得分:0)

使用random.choices并赋予您不同选项的权重,与您要赋予每个选项的概率成比例。

返回从总体中选择的k大小的元素列表 替代。如果填充为空,则引发IndexError。

如果指定了权重序列,则根据 相对权重。或者,如果cum_weights序列为 给定,则根据累计权重进行选择 (也许使用itertools.accumulate()计算)。例如, 相对权重[10、5、30、5]等于累计 权重[10、15、45、50]。在内部,相对权重为 在进行选择之前已转换为累计权重,因此 累积重量可以节省工作。

例如,您可以使用权重[10、40、2]来给第二个项目更大的选择概率,而给最后一个项目小的选择概率。

应该是:

import random 

list1 = ["fully free premium chest", "key needed premium chest", "fully free normal chest"]


random.choices(list1, weights=[10, 40, 2], k=1)[0]
# 'key needed premium chest'