From 0d686b2008cdeaae4d2e44d3b7934abcaca625ad Mon Sep 17 00:00:00 2001 From: Joscha Date: Thu, 27 Apr 2017 20:55:58 +0000 Subject: [PATCH] Fix off-by-one error in Chromosome --- src/Chromosome.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); } }