Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];
ВнизРасстояние между двумя двоичными кодами Найти похожие ветки
← →
Alekz (2004-01-14 09:28) [0]Расстояние между двумя двоичными кодами называется количество несовпадающих двоичных разрядов. Пример:
0 101101
0 010101
- +++---
Как реализовать такую програмку???
Пишите на мыло...
← →
hfa (2004-01-14 09:35) [1]послал на мыло
← →
default (2004-01-14 09:37) [2]XOR, потом подсчёт(сдвигами) единичных битов
← →
Sha (2004-01-14 09:51) [3]default © (14.01.04 09:37) [2]
XOR, потом лучше таблицей
← →
default (2004-01-14 09:59) [4]Sha © (14.01.04 09:51) [3]
это если размер двоичных данных невысок, то это имеешь ввиду?
← →
Anatoly Podgoretsky (2004-01-14 10:01) [5]default © (14.01.04 09:59) [4]
Шаблонно мыслишь, хоть 2 гб, вспомни про циклы и суммирование.
← →
AKul (2004-01-14 10:15) [6]
> Sha © (14.01.04 09:51) [3]
> XOR, потом лучше таблицей
Если твоя цель - использовать как можно больше памяти, зачем тогда вообще пользоваться XOR"ом - можно все реализовать в виде матрицы, у которой строки - операнд №1, столбцы - операнд №2, результат - элемент[операнд №1][операнд №2].
← →
Anatoly Podgoretsky (2004-01-14 10:22) [7]AKul © (14.01.04 10:15) [6]
И чего потеря одного килобайта слишком большая плата за скорость? Лучше пусть пользователь помучится?
← →
Romkin (2004-01-14 10:45) [8]При чем здесь скорость? i386 и выше есть команда, считающая кол-во единиц...
← →
default (2004-01-14 10:55) [9]
const
HashTable: Array[0..255] of Byte = (0, 1, 1, 2, ...);
function GetCountDifBits(Seq1, Seq2: Array of Byte;
LengthSeq: Cardinal): Cardinal;
var
i: Cardinal;
begin
Result := 0;
for i := 0 to LengthSeq - 1 do Inc(Result, HashTable[Seq1[i] xor Seq2[i]])
end;
Anatoly Podgoretsky © (14.01.04 10:01) [5]
так что-ли?
← →
Sha (2004-01-14 12:52) [10]default © (14.01.04 10:55) [9]
да
← →
Alekz (2004-01-15 08:15) [11]Спасибо!
← →
Anatoly Podgoretsky (2004-01-15 09:16) [12]default © (14.01.04 10:55) [9]
Да очень эффективный код.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c