假设我有 30 个数字
我需要随机分配它们但有掉落机会
例如:1 号有 2%,2 号有 1.5%,3 号有 1.1%,4 号有 1.7%,等等...
我正在用这个生成随机数
from random import randint
import string
import random
print(randint(1,30)) # generates random number from 1 to 30
但需要为每个数字分配概率
我不介意为每个数字手动分配百分比
只需要知道如何将百分比分配给随机数
请您参考如下方法:
from numpy.random import choice
items = "common","uncommon","rare","super rare"
probabilities = [0.5,0.35,0.1,0.05]
N_TESTS = 10
for i in range(N_TESTS):
print choice(items,p=probabilities)
然后你可以将其抽象到每个都是一个“类别”的地方
items = {"common":["fork","spoon","twig"],"uncommon":["rake","shovel","coal"],"rare":["knife","mixing bowl"],"super rare":["dragon tears","some money","flaming sword"]}
probabilities = {"rare":0.1,"super rare":0.05,"common":0.5,"uncommon":0.35}
item = choice(items[choice(probabilities.keys(),p=probabilities.values())])
print "You Loot:",item
