可以说我有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

09-30 00:22