輪盤賭演算法

2021-08-08 15:16:10 字數 630 閱讀 8743

首先,這個演算法可以如下表述:

如果已知a類物件生成概率為p(a),b類物件生成概率為p(b),c類物件···,k類物件,他們的概率總和為1,問如何在a~k中隨機生成乙個物件

演算法理解如下:

即我們需要先對0~1區段按照概率大小劃分長度,設隨機生成乙個0~1之間的數,這種隨機數生成結果是在0~1均勻分布的,然後看其究竟落在哪個概率區段即為生成哪種物件

演算法**:

package

test;

import

org.junit.test;

public

class

roulette ;//

假設的概率分布

for(int i=0;i<100;i++)

}/*** 輪盤賭函式

* @param

p 各類物件概率分布

* @return

生成的物件類

*/private

int roulette(double

p)

return -1;}}

輪盤賭演算法

1.基本原理 群體中個體被選擇的概率與其適應度值成正比。設個體表示為 2.由輪盤 化示例 個體 1234 5適應度值24 6810個體被選擇的概率 按照上式計算 0.07 0.13 0.20.27 0.33 3.累積概率 補充上表個體1 2345 適應度值24 6810個體被選擇的概率 按照上式計算...

輪盤賭演算法

首先,這個演算法可以如下表述 如果已知a類物件生成概率為p a b類物件生成概率為p b c類物件 k類物件,他們的概率總和為1,問如何在a k中隨機生成乙個物件 演算法理解如下 即我們需要先對0 1區段按照概率大小劃分長度,設隨機生成乙個0 1之間的數,這種隨機數生成結果是在0 1均勻分布的,然後...

輪盤賭演算法JAVA實現

我在原文的基礎是修改了部分 public class main else flag2 flag2 multipros j system.out.println 隨機生成的數字所在的範圍在 flag2 flag1 system.out.println 隨機生成的數字為 num 1 返回隨機數所在概率累...