python基础练习题:遗传算法系列 -#2突变【难度:1级】:

突变是用于维持遗传多样性从一代遗传算法的染色体的群体的到下一个遗传操作.

[外链图片转存失败(img-GJpkbaC3-1568854980357)(http://i.imgur/HngmxNN.gif)]

这里的突变可能发生在染色体零个或多个位置.这是要检查每一个位置,并通过给定的概率将决定是否会发生突变.

突变是从01或者10的变化.

*** 注:*** * 有些测试都是随机的.如果你觉得你的算法是正确的,但结果失败,请重新尝试应该工作.*

查看其它练习题这一系列

- 遗传算法系列 -#1生成
   - ** 遗传算法系列 -#2突变**
   - [遗传算法系列 -#3交叉(http://www.codewars/kata/genetic-algorithm-series-number-3-crossover)
   - [遗传算法系列 -#4使用人口和适应度(http://www.codewars/kata/genetic-algorithm-series-number-4-get-population-and-fitnesses)
   - 遗传算法系列 -#5轮盘选择

  • 此习题是一块[外链图片转存失败(img-sZoC95X6-1568854980361)(http://i.imgur/CGlQhDW.png)][二进制遗传算法(http://www.codewars/kata/526f35b9c103314662000007)*

编程目标:

def mutate(chromosome, p):
    # Good Luck!


测试样例:

Test.describe("mutate")
zero = '0' * 100
one = '1' * 100
Test.it("100% mutate")
Test.assert_equals(mutate(zero, 1), one)
Test.assert_equals(mutate(one, 1), zero)
Test.assert_equals(mutate(zero, 0), zero)
Test.assert_equals(mutate(one, 0), one)
Test.it("50% mutate")
Test.expect('0' in mutate(zero, 0.5))
Test.expect('1' in mutate(one, 0.5))


最佳答案(多种解法):

点击查看答案

更多关联题目:

python基础练习题:年龄天数【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:范围功能【难度:2级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python基础练习题:reverseIt【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python高级练习题:统计域名【难度:3级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/genetic-algorithm-series-number-2-mutation

更多推荐

python基础练习题:遗传算法系列 - #2突变【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶