我正在制作一个遗传算法来处理将一系列字符演变成“Hello World”.问题是每当我初始化一个Chromosome对象并调用generateChromosome方法时,“test”群体的所有染色体都保持不变?
public class Chromosome{
private static int defaultLength = 11;
private static char []genes = new char[defaultLength];
//Generates a random char chromosome
public void generateChromosome(){
char []newGene = new char[defaultLength];
for(int x = 0; x
char gene = (char)(32+Math.round(96*Math.random()));
newGene[x] = gene;
}
genes = newGene;
}
//Returns a specific gene in the chromosome
public char getGene(int index){
return genes[index];
}
public char[] getChromosome(){
return genes;
}
public void setGene(char value, int index){
genes[index] = value;
}
public static void setDefaultLength(int amount){
defaultLength = amount;
}
public static int getDefaultLength(){
return defaultLength;
}
public int size(){
return genes.length;
}
@Override
public String toString(){
String geneString = "";
for(int x= 0; x
geneString += genes[x];
}
return geneString;
}
}