zoukankan      html  css  js  c++  java
  • <原创>简述如何根据权重选出随机数?

    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的随机数,可看成概率,然后看看落在哪个区间,就返回哪张卡片。区间就是他们的概率比,这样也能随机根据概率选出的卡片了。

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

    子彦

  • 相关阅读:
    ApplicationContext.xml修改
    springmvc.xml约束
    log4j.properties
    SqlMapConfig.xml配置文件
    Mybatis注解式开发坐标
    字符串函数
    vim基础快捷键
    format的使用
    lambda匿名函数
    字典的基础使用
  • 原文地址:https://www.cnblogs.com/yezefei/p/7284969.html
Copyright © 2011-2022 走看看