Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сокращение расстояния Хэмминга - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нажно написать программу на языке програм С "моделирование движения" http://www.cyberforum.ru/cpp/thread228251.html
Нужно написать программу моделирующую движение спутника вокруг планеты. Грубо говоря написать программу в которой будет один объект вращаться вокруг второго. Писать можно любыми способами но:...
C++ Про CRC32 Народ, кто шарит в CRC, помогите. Прогу надо доделать или переделать, может у кого-нибудь рабочий вариант есть? Тестировалось в MV C++ 6. Bulder C++ 6. Borland 3.1. везде одни и теже ошибки... http://www.cyberforum.ru/cpp/thread228100.html
C++ Работа с изображениями
Добрый день! Есть тут знающие как работать с изображениями (Масштабировать, скопировать/вставить, обрезать). А то что-то не могу ни как разобраться. Может книги какие кто знает :)
C++ Программа завершения процесса
Возможно ли написать программу, чтобы завершить процесс mail.ru agenta? Да, и если возможно, из другого пк. (через сетку). Если есть такая, выложите пожалуйста, очень надо.
C++ Не получается разрешить доступ к интернету http://www.cyberforum.ru/cpp/thread226820.html
Не получается разрешить доступ к интернету через LAN другому компьютеру
C++ Irrlicht Доброго времени суток. Проблема состоит в том, что при загрузке движка Irrlicht все в порядке, а при прописывании программе через какой путь ей надо пройти, чтобы обратиться к классу, показывает,... подробнее

Показать сообщение отдельно
Molotoff
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
15.01.2011, 12:04  [ТС]
Цитата Сообщение от lemegeton Посмотреть сообщение
А не, был устатый. Мой пример подходит под описание задачи. Вот улучшенная версия алгоритма с добавлением вычисляемых бит. Собственно, тот же ксор, что говорил Тарас.
По сути, то что делает ваш алгоритм можно реализовать простым присваиванием, если я не ошибаюсь
Тут задача несколько другая - должна получится функция, которая получает на входе два массива одинаковой длины и число бит, на которое один массив (некоторая двоичная последовательность, представленная массивом чисел) будет "приближен" к другому. А на выходе второй массив, число бит которого отличается уже меньше как раз на этот самый параметр.

Кстати для подсчета количества бит я нашел достаточно интересное решение в плане быстродействия:
C++
1
2
3
4
5
6
7
8
9
10
11
inline unsigned int Hamming_distance(unsigned int *arr, unsigned int arr_var)
{unsigned int v, res = 0;
        for (int i=0;i<arr_var;i++)
        {v = arr[i];
        v = (v & g21) + ((v >> 1) & g21);
        v = (v & g22) + ((v >> 2) & g22);
        v = (v + (v >> 4)) & g23;
        res += (v + (v >> 8) + (v >> 16) + (v >> 24)) & 0x3f;
        }
        return res;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru