python简单的加权随机数

本文介绍了如何在Python中利用权重列表生成加权随机数。通过创建权重列表并根据权重值构造链表,可以实现对不同资源的加权随机访问。权重越大,被随机选中的概率越高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随机访问list资源,但资源访问有一个权重。建立wightlist 权重列表,表示对应的资源编号的权重值,依据权重值生成重读个资源,加入到wlatch 链表中,然后就可用依据random随机生成数字来实现加权的随机,权重越大,则资源个数越多,则随机访问到的概率也就变大。

示例如下:


#coding=utf8

import random
import time

list = {
    1: "test1",
    2: "test2",
    3: "test3",
    4: "test4",
    5: "test5"
}

wlatch = []
num = 0
wightlist = {1: 2, 2: 1, 3: 3, 4: 1, 5: 3}
for i in wightlist:
    for x in range(wightlist[i]):
        wlatch.append(i)
        num += 1

print wightlist
print num
print wlatch
while 1:
   radnum=random.randint(0,num-1)
   print list[wlatch[radnum]]
   time.sleep(1)

输出:

{1: 2, 2: 1, 3: 3, 4: 1, 5: 3}
10
[1, 1, 2, 3, 3, 3, 4, 5, 5, 5]
test3
test3
test5
test5
test2
test1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值