|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.01.2011, 08:53 | #1 |
Пользователь
Регистрация: 01.04.2009
Сообщений: 20
|
Сокращение расстояния Хэмминга
Добрый день, уважаемые форумчане.
Есть у меня следующая ситуация: имеем два массива одинаковой длины типа unsigned int, например arr1[2] и arr2[2] (на самом деле размерность может быть любой). Необходимо сократить расстояние Хэмминга между этими двумя наборами чисел, т.е., имеем, например, следующие числа arr1 656546345 15632489 arr2 606214697 78559272 которые в двоичном коде выглядят как arr1 0010 0111 0010 0010 0001 1010 0010 1001 0000 0000 1110 1110 1000 1000 0110 1001 arr2 0010 0100 0010 0010 0001 1010 0010 1001 0000 0100 1010 1110 1011 1000 0010 1000 Расстояние Хэмминга в данном случае - число отличающихся бит массива arr1 от arr2 (здесь оно равно 8-ми). Причем, это должен быть один или n бит, выбранные случайным образом, т.е. не обязательно менять первый отличающийся бит, это может быть и 5-й и 10-й и т.д. На ум приходит только не очень эффективный способ: взять единицу и случайным образом ее двигать влево-вправо, пока не будет найден отличающийся бит и не будет заменен на противоположный. Вопрос: можно ли как-то более эффективнее с точки зрения скорости выполнения сделать или тут без вариантов? P.S. Почему нужно оптимизировать по скорости выполнения - эта операция будет повторяться много раз, что скажется на общем времени выполнения программы. |
14.01.2011, 11:48 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
или я торможу, или в условии чего-то не хватает, но получается, что самый быстрый способ сократить расстояние до нуля, это:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Код Хэмминга | 0479 | Помощь студентам | 0 | 12.11.2010 10:32 |
Сокращение if | AxenicX | Общие вопросы C/C++ | 2 | 07.11.2009 16:08 |
растояние Хэмминга | semennn | Помощь студентам | 0 | 06.05.2009 19:11 |
Сокращение выражения | Simon..14 | Общие вопросы C/C++ | 4 | 25.01.2009 13:33 |