根据权重获取随机数

根据权重获取数值,是一个很常用的方式,写了两种方式,根据不同的需求,可选择不同方式

方式1;

思路就是根据配置的权重值,生成随机空间,比如 1:2:3,这样的权重空间就相当于0~1(左闭又开的规则)分成了6份,第一个数的权重是1就占1份,依次是2份3份,这样就能确定数值的权重空间所在

 

根据权重获取随机数

方式二:

同例 1:2:3的话,就先生成一个空数组,因为第一个数值占一份,就放入1个,第二个数值占两份就放入2个,依次类推,这样就得到了一个跟配置权重相同的数组,然后随机打乱数组,取出一项,删除一项,这样就保证,在同一组数据中,产生的数值,跟配置的权重一样

根据权重获取随机数

两种方式根据权重获取数值,具体选用视情况而定