У Георга лучший ответ, если строка смещена случайным образом (я предполагаю, что на 0 ... n бит равномерно распределена), его стратегия всегда переключать первый бит рано или поздно будет успешной.
К сожалению, эта стратегия может занять очень много времени в зависимости от длины строки.
Ожидаемое значение числа битов, которое устанавливается в 1, будет в среднем n / 2, поэтому вероятность того, что переключение битов будет успешным, составляет 0,5, для каждого устанавливаемого бита вероятность уменьшается на 1 / n.
Процесс можно рассматривать как цепочку Маркова , где вычисляется вероятность нахождения в состоянии 0xff ... ff, где установлены все биты, и, таким образом, число попыток в среднем, необходимых для достижения этого состояния можно рассчитать.