Годится ли Брезенхем для Хемминга?
Стоит задача эффективно и без использования рандомизации строить N M-битных кодов, как можно более удаленных друг от друга в смысле Хемминга, в которых ровно K бит равны 1 (в типичном случае N в разы, а то и на порядки меньше, чем C(M, K)). Например, нужно получить пару тысяч 32-битных кодов с 3 битами, равными 1 (C(32, 3) = 4960); или пару десятков тысяч 32-битных кодов с 16 битами, равными 1 (C(32, 16) = 601080390, что всё ещё не ужас-ужас-ужас).
Я предлагаю пройтись (например, хаком Госпера для небольших M) по всем C(M, K) от "K младших единиц" до "K старших единиц", более или менее равномерно выбирая в общей сложности N кодов с помощью Брезенхема.
Что скажете?