加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

the probability of returning one element should be val of nu

发布时间:2020-12-14 03:46:31 所属栏目:大数据 来源:网络整理
导读:Class weightedOutput{ Random rand; public int probOutput( int [] array){ // prefix int [] prefix = new int [array.length + 1 ]; prefix[ 0] = 0 ; for ( int i = 1; i array.length; i++ ){ prefix[i] = prefix[i - 1] + array[i - 1 ]; } int rand
Class weightedOutput{
    Random rand;
    public int probOutput(int[] array){
        // prefix 
        int[] prefix = new int[array.length + 1];
        prefix[0] = 0;
        for(int i = 1; i < array.length; i++){
            prefix[i] = prefix[i - 1] + array[i - 1];
        }
        int rand = rand.nextInt(prefix[prefix.length - 1]);
        int res = binarySearch (prefix,rand); // index of 9 
        return array[res - 1];
        }
    }
    private  binarySearch(int[] prefix,int rand){
        int start = 0;
        int end = prefix.length;
        while(start < end - 1){
            int mid = start + (end - start) / 2;
            if(prefix[mid] == rand){
                return mid;
            }else if(prefix[mid] < rand){
                start = mid; 
            }else{
                end = mid;
        }
        if (prefix[start] <= rand) {
            return start;
        }
        return end;
}

[1,2,6,7]

the probability of returning one element should be val of num / total vals

?

1,2

1 1/16

2 2/16

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读