亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java實現按權重隨機數

2019-11-26 15:12:25
字體:
來源:轉載
供稿:網友

一、問題定義:

問下有一個數組,這些數組中的值都有自己的權重,怎樣設計才能高效的優先取出權重高的數??

例如:

復制代碼 代碼如下:

權重: 8  2  11  79
權重返回的值: 0  1  2   3

二、分析問題:

思路一:創建一個數組數組大小為權重和的大小,如值0的權重是8,則放入8個0值,值1的權重是2,則放入2個1值,依次類推。
然后用用一個權重和大小的隨機數,產生隨機數,即可。缺點要占用過多的內存。

思路二:

權重和數組 w[i]存儲的是[0,i]元素的所有元素的權重和  時間復雜度O(n) 空間復雜度O(n)
隨機[0,W[399]] 看隨機數 落在哪個Wi 內就選哪個  時間復雜度 O(longn)
所以總的時間復雜度時間復雜度O(n) 空間復雜度O(n)

偽代碼:

輪盤賭 并不是一種特別好的選擇算子,但它容易實現。
首先要明白一點,由于交叉、變異等算子,并不能控制進化方向,所以進化的重任落在選擇算子上。
如果明白了這一點,就好辦了。

輪盤賭,就是積累概率來實現的,通常適應度大的被選擇的幾率較高。
假如:fit為適應度數組,共m個

復制代碼 代碼如下:

for i=1 to m '先求和
sum=sum+fit(i)
next i
For i = 1 To n ‘n-是要生成多少個個體
temp = temp + fit(i)
If rnd <= temp / sum Then
   輸出 i 就是結果
Exit Function
End If
Next i

三、解決問題:

復制代碼 代碼如下:

package datastruct; 
 
import java.util.HashMap; 
import java.util.Map; 
 
/**
權重隨機數:
如              權重:8  2  11  79
        權重返回的值:0  1  2   3
@author ajian005 79331356@qq.com
2014-2-16 21:12
輸出結果:{2.0=184128, 11.0=348551, 79.0=1308100, 8.0=159221}
*/ 
 
public class WeightRandomTest { 
    private static double[] weightArrays = {8.0,2.0,11.0,79.0};  // 數組下標是要返回的值,數組值為數組下標的權重 
    public static void main(String[] args) { 
        WeightRandom weightRandom = new WeightRandom(); 
        Map<Double, Integer> stat = new HashMap<Double, Integer>(); 
        for (int i = 0; i < 2000000; i++) { 
            int weightValue = weightRandom.getWeightRandom(weightArrays); 
            if (weightValue < 0) { 
                continue; 
            } 
            System.out.println("按權重返回的隨機數:" + weightValue); 
            if (stat.get(weightArrays[weightValue]) == null) { 
                stat.put(weightArrays[weightValue], 1); 
            } else { 
                stat.put(weightArrays[weightValue], stat.get(weightArrays[weightValue])+1); 
            } 
        } 
        System.out.println(stat); 
    } 

 
class WeightRandom { 
    java.util.Random r = new java.util.Random(); 
    private double weightArraySum(double [] weightArrays) { 
        double weightSum = 0; 
        for (double weightValue : weightArrays) { 
            weightSum += weightValue; 
        } 
        return weightSum; 
    } 
    public int getWeightRandom(double [] weightArrays) { 
        double weightSum = weightArraySum(weightArrays); 
        double stepWeightSum = 0; 
        for (int i = 0; i < weightArrays.length; i++) { 
            stepWeightSum += weightArrays[i]; 
            if (Math.random() <= stepWeightSum/weightSum) { 
                //System.out.println(i); 
                return i; 
            } 
        } 
        System.out.println("出錯誤了"); 
        return -1; 
    }    

四、歸納總結:

俄羅斯輪盤賭就是積累概率來實現

按權重負載調度等

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大尺度电影在线观看| 一区二区欧美激情| 国产精品99久久久久久久久久久久| 亚洲国模精品私拍| 欧美日韩国产精品一区二区三区四区| 日韩网站免费观看高清| 精品国产欧美一区二区三区成人| 亚洲国产精久久久久久| 欧美贵妇videos办公室| 日韩av在线不卡| 综合网日日天干夜夜久久| 国产999精品久久久影片官网| 国产成人啪精品视频免费网| 欧美激情精品久久久久久大尺度| 国产精品一区二区久久久| 中国人与牲禽动交精品| 欧美高清一级大片| 国产精品高潮在线| 国产精品观看在线亚洲人成网| 久久久这里只有精品视频| 91深夜福利视频| 久久91精品国产| 久久躁日日躁aaaaxxxx| 欧美噜噜久久久xxx| 欧美成年人视频网站欧美| 91国产在线精品| 97国产精品视频人人做人人爱| 黑人巨大精品欧美一区二区三区| 亚洲视频999| 久国内精品在线| 亚洲人成绝费网站色www| 91最新国产视频| 91精品成人久久| 久久久精品国产一区二区| 国产精品黄色影片导航在线观看| 最近中文字幕mv在线一区二区三区四区| 欧美丝袜一区二区| 国产欧美精品xxxx另类| 久久久国产一区二区三区| 国产精品日韩专区| 亚洲国产精品yw在线观看| 精品久久久久久中文字幕| 青青久久av北条麻妃黑人| 日韩av一区在线| 精品成人69xx.xyz| 国产一区二区三区在线| 欧美性猛交xxxx乱大交极品| 亚洲天堂av电影| 国产精品爽爽爽爽爽爽在线观看| 久久99久久99精品免观看粉嫩| 久久综合亚洲社区| 久久精品亚洲热| 日韩欧美精品网址| 日韩欧美在线一区| 欧美性猛交xxxx富婆| 日韩精品在线免费播放| 亚洲成人在线视频播放| 欧美日韩亚洲高清| 国产精品成人播放| 伊是香蕉大人久久| 国产精品999| 国产在线精品成人一区二区三区| 欧美精品www| 日韩免费观看视频| 久久久电影免费观看完整版| 777精品视频| 狠狠躁夜夜躁人人躁婷婷91| 精品视频中文字幕| 性日韩欧美在线视频| 91精品免费久久久久久久久| 91最新在线免费观看| 久久久久久香蕉网| 国产亚洲精品美女| 欧美日韩一区二区免费在线观看| 亚洲第一色在线| 91精品国产99| 日本精品免费观看| 欧美极品第一页| 日本乱人伦a精品| 国产欧美中文字幕| 国产精品视频网站| 亚洲在线观看视频网站| 91av在线不卡| 欧美最猛黑人xxxx黑人猛叫黄| 久久人人爽人人爽人人片av高请| 国产日韩在线亚洲字幕中文| 国产成+人+综合+亚洲欧美丁香花| 人人做人人澡人人爽欧美| 92看片淫黄大片欧美看国产片| 欧美国产日本高清在线| 日韩欧美一区二区三区久久| 欧美激情奇米色| 日韩精品在线观看网站| 日韩美女视频免费在线观看| 久久久久久av| 国产一区二区三区在线看| 亚洲欧美国产另类| 国产一区二区三区视频| 97香蕉超级碰碰久久免费软件| 欧美日韩国产一区中文午夜| 大桥未久av一区二区三区| 国产精品99久久久久久白浆小说| 亚洲成人久久久久| 欧美黄色片在线观看| 国产欧美精品在线| 国产成人黄色av| 国产91精品久| 日韩欧美在线第一页| 日韩精品中文字幕在线观看| 亚洲香蕉伊综合在人在线视看| 播播国产欧美激情| 亚洲色图综合网| 欧美乱人伦中文字幕在线| 91久久精品美女| 精品毛片三在线观看| 欧美日韩激情小视频| 色哟哟网站入口亚洲精品| 精品久久久久久中文字幕一区奶水| 久久精品国产欧美激情| 午夜精品一区二区三区在线| 欧洲精品在线视频| 国产v综合v亚洲欧美久久| 日韩av成人在线观看| 国产精品极品在线| 久久精品国产一区| 久久久在线视频| 日韩精品福利在线| 欧美性在线观看| 狠狠色狠狠色综合日日五| 亚洲美女av在线播放| 欧美另类精品xxxx孕妇| 亚洲国产天堂久久综合网| 欧美日韩国产色| 国产精品久久久91| 亚洲成人1234| 26uuu亚洲国产精品| 欧美视频在线观看免费网址| 欧美在线观看一区二区三区| 九九热最新视频//这里只有精品| 精品国产一区二区三区久久久狼| 精品国产成人在线| 亚洲专区中文字幕| 欧美大片第1页| 国产主播在线一区| 久久频这里精品99香蕉| 国产在线日韩在线| 国产免费亚洲高清| 亚洲男人7777| 久久久在线免费观看| 亚洲成av人影院在线观看| 欧美肥老妇视频| 日本老师69xxx| 国产精品午夜一区二区欲梦| 成人中心免费视频| 91九色国产社区在线观看| 亚洲第一精品电影| 亚洲成人av片| 精品视频—区二区三区免费| 欧美激情视频网址| 久久夜色精品国产欧美乱| 欧美日韩亚洲一区二区三区| 日韩免费黄色av| 45www国产精品网站| 精品国产老师黑色丝袜高跟鞋|