• <原创>简述如何根据权重选出随机数?


    DEMO:

         

    分析:谈到随机我们首先会想到Python里面有个random的模块,负责处理随机数。首先看看里面有没有现成的方法来处理这类根据权重出随机数。

                  

    看到所有方法中貌似没有。

    通过编写函数自己实现:

    思路一、既然要在产生随机数的时候考虑到元素的权重,就上面这个例子而言,不如就将card的个数看成权重数,比如card1有10张,card2有20张,card3有15张。再把所有张数的卡片加到一个列表中。card_list = [card1,card1,......card2,......card3......],然后再用random.choice(card_list)从列表中随机抽出一张卡片,这样抽出的就是基于卡片概率的了。

    思路二、更加通用的实现。比如有N张卡片,权重和为1,根据权重来随机选出卡片。那么可以根据他们概率划分区间。比如20的就是0~0.2区间  40的就是0.2~0.6  30的就是0.6~0.9

    剩下10的就是0.9~1,然后直接用random.random()生成一个0~1的随机数,可看成概率,然后看看落在哪个区间,就返回哪张卡片。区间就是他们的概率比,这样也能随机根据概率选出的卡片了。

    更多思路读者可以自行思考、集思广益,请留言。

    子彦

  • 相关阅读:
    MDK常用快捷键
    Visual C++ 6.0常用快捷键
    STM32内存映射
    STM32固件库
    MDK建立STM32F103*开发模板
    STM32下载方法
    Protel DXP画原理图常见错误与警告
    usb host和usb device
    IAR使用记录
    开发新产品的三个验证阶段(EVT/DVT/PVT)
  • 原文地址:https://www.cnblogs.com/yezefei/p/7284969.html
Copyright © 2020-2023  润新知