gpt4 book ai didi

python - 选择具有重量的随机项目

转载 作者:太空狗 更新时间:2023-10-29 20:36:46 26 4
gpt4 key购买 nike

我有一份大约的 list 。 10000 个项目。目前的情况是每个项目都有一个相关的权重(优先级或重要性)。现在最小的权重是 -100(可以删除负值和零值),最高的权重是 1500。权重由人们的直觉决定(某人如何认为该项目对社区很重要)。因为不容易确定最重要的项目,我想使用一些随机因素,这样权重较低的项目被选择的机会就会减少,并且将来会调整它们的权重(一些常识和随机性)。

你知道如何编写函数 getItem 吗?

def getItem(dict):
# this function should return random item from
# the dictionary of item-weight pairs (or list of tuples)
# Normally I would return only random item from the dictionary,
# but now I'd like to have this: The item with weight 1500 should
# have much more chance to be returned than the item with weight 10.
# What's my idea is to sum up the weights of all items and then compute
# some ratios. But maybe you have better idea.
return randomItem

谢谢

最佳答案

看看这个,我认为这是你需要的,不同方法之间有一些很好的比较 Weighted random generation in Python

建议的最简单方法是:

import random

def weighted_choice(weights):
totals = []
running_total = 0

for w in weights:
running_total += w
totals.append(running_total)

rnd = random.random() * running_total
for i, total in enumerate(totals):
if rnd < total:
return i

您可以在上面的链接中找到更多详细信息和可能的改进以及一些不同的方法。

关于python - 选择具有重量的随机项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com