輪盤賭演算法

2021-09-02 10:58:29 字數 557 閱讀 1558

1.基本原理:

群體中個體被選擇的概率與其適應度值成正比。設個體表示為

2.由輪盤**化示例 個體

1234

5適應度值24

6810個體被選擇的概率(按照上式計算)

0.07

0.13

0.20.27

0.33

3.累積概率:補充上表個體1

2345

適應度值24

6810個體被選擇的概率(按照上式計算)

0.07

0.13

0.20.27

0.33

累積概率

0.07

0.20.4

0.671

4.現在有了盤子,也用所有個體被選擇的概率劃分了整個盤子的比例,最後又計算了累積概率。現在開始進行輪盤賭;

先用rand()產生乙個[0.1之間的]隨機數,看看它落在了那個區間,就對應選擇哪個個體,例如:這個隨機數為0.02,那麼個體1就被選中;如果為0.1,則個體2被選中;如果為0.3,則個體3選中。一次類推。

5.結束,參考**網上有很多,有各種語言的。

輪盤賭演算法

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

輪盤賭演算法

首先,這個演算法可以如下表述 如果已知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 返回隨機數所在概率累...