我正在为遗传算法构建一个模拟轮盘选择函数。首先,我会想加起来sum的fitnessScore主功能。加起来后,fitnessScore我想sum使用math/randGo 中的包随机化一个值。在这种情况下我应该如何使用 rand 包如何修复spin_wheel := rand.sum以随机化一个值?
package main
import(
"fmt"
"time"
"math/rand"
)
func rouletteWheel(fitnessScore []float64) []float64{
sum := 0.0
for i := 0; i < len(fitnessScore); i++ {
sum += fitnessScore[i]
}
rand.Seed(time.Now().UnixNano())
spin_wheel := rand.sum
partial_sum := 0.0
for i := 0; i < len(fitnessScore); i++{
partial_sum += fitnessScore[i]
if(partial_sum >= spin_wheel){
return fitnessScore
}
}
return fitnessScore
}
func main(){
fitnessScore := []float64{0.1, 0.2, 0.3, 0.4}
fmt.Println(rouletteWheel(fitnessScore))
}
千万里不及你
相关分类