diff --git a/src/Chromosome.cpp b/src/Chromosome.cpp index 058803e..96395c9 100644 --- a/src/Chromosome.cpp +++ b/src/Chromosome.cpp @@ -193,7 +193,7 @@ void Chromosome::mutateGene(Gene& gene) std::pair::iterator, std::vector::iterator> Chromosome::selectSegment(std::vector& genes) { - std::uniform_int_distribution<> randdist(0, genes.size()); + std::uniform_int_distribution<> randdist(0, genes.size()-1); auto first = genes.begin() + randdist(*Chromosome::re); auto second = genes.begin() + randdist(*Chromosome::re); @@ -212,7 +212,7 @@ Chromosome::selectGene(std::vector& genes) if (genes.empty()) { return genes.end(); } else { - std::uniform_int_distribution<> posdist(0, genes.size()); + std::uniform_int_distribution<> posdist(0, genes.size()-1); return genes.begin() + posdist(*Chromosome::re); } }