루프를 사용하여 비트 문자열을 변경하려고합니다 (아래 코드 참조). 입력 및 출력은 동일합니다. flipBit() 함수가 작동반복 문자열을 변형 할 수 없습니다.
bitstring = "100111001101010101010101"
print("old genome : " + bitstring)
for bit in bitstring:
if random.random() < 1:
print("old bit : " + bit)
bit = flipBit(bit)
print("new bit : " + bit)
bitstring= "".join(bitstring)
print("new genome : " + bitstring)
이 나에게 (코드의 인쇄 문에) 내가 검사 한 출력
old genome = 100111001101010101010101
new genome = 100111001101010101010101
을 제공합니다. 그리고 그것은 솔기가 작동하고 ... 그러나, 입력 bitstring과 출력은 동일합니다.
내가 원하는 것은 확률을 낮추는 것입니다. 비트 중 일부만 돌연변이되도록
if random.random() < 0.05:
. 파이썬에서
은? – Selcuk
죄송합니다, 오래된 var 이름으로 복사했습니다. –