私は突然変異プロセスをシミュレートしようとすると、遺伝的アルゴリズムを足すながら、私は、この問題を持っている: 1.私は遺伝子が形式であるランダムposition = randint(0, len(genes)-1)
「10101」を選択して、1と0がランダムに 2に設定されている私がしよう1または0を0または1に置き換えて突然変異をシミュレートすると、多くのエラーが発生します。文字列中の文字をPythonでの位置を知るように変更するにはどうすればよいですか?
position = randint(0, len(genes)-1)
if(genes[position]=="1"):
genes[position] = "0"
if(genes[position]=="0"):
genes[position] = "1"
動作しません:
私はこの方法を試してみました。 私はまた試してみました:if(genes[position_to_mutate]=="1"):
genes_new = ""
if(position_to_mutate == 0):
genes_new = "0" + genes[1:len(genes)]
print "genes z zerowym nowym : ", genes
if(position_to_mutate!=0):
genes_new = genes[0:position_to_mutate] + "0" + genes[position_to_mutate+1:len(genes)]
if(position_to_mutate==4):
genes_new = genes[0:len(genes)-2] + "0"
だから、どのように私は他の文字列内のその位置によって、それを取得して1つの記号を置き換えますか?
どのように '遺伝子 'を定義していますか?どのようなエラーがスローされていますか? –
文字列に代入を使用することはできないので、 'genes [position]'などはエラーで失敗するでしょう。 –