Skip to main content
 首页 » 编程设计

Python之游戏中的掉落率,随机分配的概率

2025年05月04日26zhujiabin

假设我有 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