Re: ?

From
Dmitriy K. ()
To
Slavik Levchenko
Date
2002-09-02T11:50:52Z
Area
RU.ALGORITHMS
From: "Dmitriy K." <krylov@mail.primorye.ru>

Hello, Slavik!
You wrote to All on Sun, 01 Sep 2002 19:26:38 +0400:

 SL> \/ Peace All!

 SL> Вобщем, не знаю как это назвать:

 SL>     есть паpy последовательностей символов. для каждой генеpиpyется
 SL> опpеделенный код, котоpый идентифициpyет каждyю последовательность.
 SL> это хэш?
 SL> чек-сyмма? что это? мне нyжно для последовательности символов
 SL> сгенеpиpовать число, чтобы это число не повтоpялось пpи генеpации
 SL> для дpyгой последовательности символов.
 SL> - зависимость числа от колличества символов - от лексикогpафического
 SL> состава (для соpтиpовки в алфавитном поpядке)

Если полностью для любой (а не только каждой ;-) ) последовательности  -
уникальный код, то, IMHO, это невозможно (впрочем, это легко доказать через
биективное отображение). Таким кодом будет САМА последовательность (или её
преобразования). Если же надо, чтобы различные последовательности
кодировались ПО ВОЗМОЖНОСТИ различными идентификаторами, то подойдет куча
алгоритмов, например, CRC (в инете инфы навалом, могу по почте заслать
парочку) и её аналоги и вариации. CRC, например, обладает тем свойством, что
при изменении нескольких символов последовательности (зависит от алгоритма)
CRC-код новой последовательости будет другим.

А еще лучше - описать, что у тебя за задача, и что значит уникальный код с
точки зрения задачи. Например, если налала последовательности ОЧЕНЬ разные
(первые два-четыре байта), то таким уникальным идентификатором могут быть
эти самые два-четыре байта исходной последовательности.


 SL> ps что есть хэш? хэш-фyнкция? алгоpитм фоpмиpования хэша?

Во втором абзаце моего ответа приведен _пример_ хэш-функции. Хэшем будут те
самые два-четыре байта, хэш-функцией - функция извлечения первых байт из
последовательности. В примере с CRC хэшем будет CRC-код, хэш-функцией -
алгоритм вычисления CRC.

With best regards, Dmitriy K. E-mail: krylov@mail.primorye.ru


--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)