30 if(bitstr->bits.size() == 1)
34 uint bitIndexSmaller = state_->getRandomizer()->getRandomInteger((uint) bitstr->bits.size());
38 bitIndexBigger = state_->getRandomizer()->getRandomInteger((uint) bitstr->bits.size());
39 }
while (bitIndexSmaller == bitIndexBigger);
42 uint tmp = bitIndexSmaller;
43 if (bitIndexSmaller > bitIndexBigger) {
44 bitIndexSmaller = bitIndexBigger;
52 for(uint i = bitIndexSmaller; i <= bitIndexBigger; i++) {
53 if(bitstr->bits[i]) counter1++;
57 int fairness0 = counter0;
58 int fairness1 = counter1;
61 for(uint i = bitIndexSmaller; i <= bitIndexBigger; i++) {
62 int random = state_->getRandomizer()->getRandomInteger(1, fairness0 + fairness1);
64 if(random <= fairness1) {
66 bitstr->bits[i] =
true;
70 bitstr->bits[i] =
false;
76 bitstr->bits[i] =
false;
80 bitstr->bits[i] =
true;