修改以下代码为换位变异def mutation(generation, p_m): new_generation = [] for DNA in generation: for j in range(len(DNA)): if random.random() < p_m: DNA[j] = (DNA[j] + 1) % 2 new_generation.append(DNA) return new_generation
时间: 2024-03-10 08:43:27 浏览: 147
修改后的代码如下:
```
def mutation(generation, p_m):
new_generation = []
for DNA in generation:
mutated_DNA = []
for j in range(len(DNA)):
if random.random() < p_m:
mutated_DNA.append((DNA[j] + 1) % 2)
else:
mutated_DNA.append(DNA[j])
new_generation.append(mutated_DNA)
return new_generation
```
修改的部分包括:
1. 在内层循环中,对于每个基因位,如果需要变异,则将其值取反后加入新的DNA序列中;
2. 将修改后的DNA序列加入新的代际中。
阅读全文