不等概率隨機

2022-08-13 19:09:12 字數 799 閱讀 9395

實現乙個,按 不同 權重 隨機元素的實現,如:a的權重為1,b的權重為2,那麼 隨機元素的時候 b的出現概率為  2/3 ,a出現的概率為 1/3。

/**

* 不等概率(權重)隨機

* * **

@param

sampledatamap 樣本資料,key: 資料,value: 資料的權重

* @return

*/public

static long unequalprobabilityrandom(mapsampledatamap)

if (sampledatamap.size() == 1)

int size =sampledatamap.size();

maplist

sampledatamap.values().foreach(weight ->

string key =randomstringutils.randomalphanumeric(size);

});list

resultlist =sampledatamap.entryset()

.parallelstream()

.filter(entry ->objects.equals(weight, entry.getvalue()))

.map(map.entry::getkey)

.collect(collectors.tolist());

return resultlist.get(randomutils.nextint(0, resultlist.size()));

}

隨機概率問題全集

問題 已知有個rand7 的函式,返回1到7隨機自然數,讓利用這個rand7 構造rand10 隨機1 10。只呼叫一次rand7 肯定無法達到目的。我們呼叫兩次rand7 這樣我們可以隨機的得到1 49中的乙個數,為什麼呢?我們將49分成7段,1 7,8 14,15 21,22 28,29 35,...

按概率隨機選取

據我了解,random.choice seq 是等概率選取乙個,不是我想要的。而numpy.random.choice seq,p,k 是按概率隨機重複選取多個,這正是我想要的。但是,我不想為這麼乙個函式引入巨大的numpy庫,所以打算自己實現乙個按概率隨機選取的函式。特此將 記錄如下 import...

按概率隨機選取

據我了解,random.choice seq 是等概率選取乙個,不是我想要的。而numpy.random.choice seq,p,k 是按概率隨機重複選取多個,這正是我想要的。但是,我不想為這麼乙個函式引入巨大的numpy庫,所以打算自己實現乙個按概率隨機選取的函式。特此將 記錄如下 import...