首页 > 其他分享 >ConcurrentSkipListMap实现随机数命中权重占比

ConcurrentSkipListMap实现随机数命中权重占比

时间:2023-02-13 17:24:13浏览次数:42  
标签:int sum li 随机数 命中 ConcurrentSkipListMap additions null

public String getCoverBottom(FlowAdditions additions) {
        if(null==additions){
            return "默认";
        }
        List<FlowCoverBottom> li = this.isMatchBottom(additions);
        if(null == li || li.isEmpty()){
            return "默认";
        }
        //根据权重输出兜底方。
        int sum = li.stream().mapToInt(FlowCoverBottom::getIntRatio).sum();
        int random = RandomUtils.nextInt(0, sum);
        ConcurrentSkipListMap<Integer,String> skipListMap = new ConcurrentSkipListMap<>();
        int ceiling = 0;
        for(int i=0;i<li.size();i++){
            FlowCoverBottom bottom = li.get(i);
            ceiling = ceiling+bottom.getIntRatio();
            skipListMap.put(ceiling,bottom.getCode());
        }
        return skipListMap.higherEntry(random).getValue();
    }

  

标签:int,sum,li,随机数,命中,ConcurrentSkipListMap,additions,null
From: https://www.cnblogs.com/guoziyi/p/17117038.html

相关文章

  • 【牛客刷题】HJ3 明明的随机数
    题目链接这题有两个要编码解决的问题,首先是去重,其次是排序。最开始想着就用Java的TreeSet解决了,简单好用,去重排序都一并解决了,编码只需要考虑input的逻辑就可以,代码如下......
  • 输出不重复的随机数
    packagecom.fqs.demo;importjava.util.Random;publicclassNoChongFuSJ{publicstaticvoidmain(String[]args){/***本方法的思路......
  • Go语言产生随机数
    funcmain(){//产生随机数,设置种子,种子参数一样,每次程序重新运行的随机数都一样rand.Seed(666)fori:=0;i<5;i++{fmt.Println(rand.Int())//产生很大的......
  • 【NOIP2006】【codevs1075】明明的随机数
    problemsolutioncodes#include<iostream>usingnamespacestd;intn,a[1010],t;intmain(){cin>>n;for(inti=1;i<=n;i++){intx;cin>>x;......
  • 输出随机数的各个位数
    packagecom.fqs.demo;importjava.util.Random;publicclassSjWeiShu{publicstaticvoidmain(String[]args){//1237777777777777777=number......
  • 生成不同随机数
    #include<cstdio>#include<cstdlib>#include<iostream>#include<ctime>usingnamespacestd;/*生成n个不同的数min代表最小值max生成的最大值*/i......
  • Blazor断点无法命中问题
      解决办法,使用chrome浏览器进行debug调试,firefox会出现进不去断点的情况参考地址https://qa.1r1g.com/sf/ask/4119839951/  ......
  • 【测试】JMeter生成流水好和随机数
    在压测环境中为了能够使记录保持唯一性很多时候都需要用到流水号和随机数。还好在JMeter中已经自带了解决方案,下面为大家分别说一下如何使用。流水号我们要生成流水号其实非......
  • js: Math.random()获取随机数
    文档https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random获取一个0-1之间的随机数//[0,1)console.log(Math.random())......
  • 对一个随机数做运算并顺序输出结果
    packagecom.fqs.demo;importjava.util.Random;publicclassJiaMi{publicstaticvoidmain(String[]args){//比如系统的数字密码是19//......