Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void GetBreedParents(out Genome<T> parent1, out Genome<T> parent2)
- {
- parent1 = null;
- parent2 = null;
- var rand = Global.RandGen.NextDouble();
- if (rand <= 0.6)
- {
- parent1 = this.Genomes.ElementAt(Global.RandGen.Next(0, (int)(this.Genomes.Count*0.2)));
- parent2 = this.Genomes.ElementAt(Global.RandGen.Next(0, (int)(this.Genomes.Count*0.2)));
- }
- else if (rand <= 0.7)
- {
- parent1 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.2), (int)(this.Genomes.Count*0.5)));
- parent2 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.2), (int)(this.Genomes.Count*0.5)));
- }
- else if (rand <= 0.8)
- {
- parent1 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.5), (int)(this.Genomes.Count*0.8)));
- parent2 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.5), (int)(this.Genomes.Count*0.8)));
- }
- else if (rand <= 0.9)
- {
- parent1 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.8), (int)(this.Genomes.Count*1.0)));
- parent2 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count*0.8), (int)(this.Genomes.Count*1.0)));
- }
- else
- {
- parent1 = this.Genomes.ElementAt(Global.RandGen.Next(0, (int)(this.Genomes.Count * 0.2)));
- parent2 = this.Genomes.ElementAt(Global.RandGen.Next((int)(this.Genomes.Count * 0.8), (int)(this.Genomes.Count * 1.0)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment