我正在使用python-3.x,並且我正嘗試在一個二進制字符串上進行突變,這個二進制字符串將從0翻轉爲1的元素或通過隨機1比0,我嘗試了一些方法,但沒有工作,我不知道問題出在哪裏:一個二進制字符串上的突變(遺傳算法)-python-3.x
x=[0, 0, 0, 0, 0]
def mutation (x, muta):
for i in range(len(x)):
if random.random() < muta:
x[i] = type(x[i])(not x[i])
return x,
print (x)
例如輸出應該是X = [0,0,0,1, 0]或x = [1,0,0,0,0]等....
另外,我試圖這樣一個:
MUTATION_RATE = 0.5
CHROMO_LEN = 6
def mutate(x):
x = ""
for i in range(CHROMO_LEN):
if (random.random() < MUTATION_RATE):
if (x[i] == 1):
x += 0
else:
x += 1
else:
x += x[i]
return x
print(x)
請任何建議或意見可以理解
用'類型是什麼(X [1])(不是X [1])'...? –
x [i] – azeez
的值但是你爲什麼要'type(x [i])(...)'? –