Новые книги

Черный PR сегодня активно перемещается в Интернет. В свое время кольт сделал людей равными. Сегодня Интернет уравнял финансово сильных и слабых в медиапространстве. Глобальная сеть позволяет рядовому человеку разорить могущественную корпорацию. Маленькая компания может эффективно противостоять транснациональному монстру, не располагая никакими финансами. Умение отражать информационные атаки стало на редкость насущной проблемой для любого бизнеса.

В этой книге показаны все необходимые для отражения информационного нападения в Интернет инструменты и раскрыты секреты их применения.
Что в нем особенного? Почему Стив Джобс при жизни считался гением, а после смерти превратился в культовую фигуру, легенду и основателя религии Apple, у которой миллиарды последователей по всему миру? Не инженер, не дизайнер, он всего лишь дирижировал оркестром. По-своему. Он не признавал правил и беспрестанно унижал своих сотрудников. Джобс добился того, что его уволили из его собственной компании. Как из юного мечтателя он превратился в культового героя? Кто такой Стив Джобс и кем он стал после жизни?

Новая книга Бориса Соколова рассказывает историю жизни Стива Джобса – человека и легенды. Из книги Вы узнаете не только шокирующие подробности жизни Джобса, но и историю Apple, а также историю создания культа нового времени. Подробности съемок нового фильма, откровения Майкла Фассбендера, исполнителя главной роли в фильме Дэнни Бойла и многое другое! Читайте и поклоняйтесь Его Величеству Джобсу!

levenshtein

Учебник РНР
НазадВперёд

levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1)

levenshtein - высчитывает расстояние Левенштайна/Levenshtein между двумя строками.

Описание

int levenshtein (string str1, string str2)

int levenshtein (string str1, string str2, int cost_ins, int cost_rep, int cost_del)

int levenshtein (string str1, string str2, function cost)

Эта функция возвращает Levenshtein-дистанцию между двумя строками-аргументами или -1, если одна из строк-аргументов длиннее предела в 255 символов (255 должно быть более чем достаточно для имени или словарного сравнения, и никто в здравом уме не будет делать генетический анализ с помощью PHP).

Levenshtein-дистанция определяется как минимальное количество символов, которые вы должны заместить, вставить или удалить, чтобы трансформировать str1 в str2. Сложность алгоритма равна O(m*n), где n и m это длины строк str1 и str2 (несколько лучше по сравнению с similar_text(), которая имеет O(max(n,m)**3), но всё же затратно).

В простейшем случае функция принимает в качестве параметров только две строки и вычисляет только количество операций вставки, замены или удаления, необходимых для трансформации str1 в str2.

Во втором варианте функция принимает три дополнительных параметра, определяющих цену операций вставки, замены или удаления. Это более общо и адаптивно, чем первый вариант, но не так эффективно.

Третий вариант (ещё не реализованный) будет самым общим и адаптивным, но также и самым медленным. В нём будет вызываться пользовательская функция, которая определит стоимость каждой возможной операции.

Пользовательская функция будет вызвана со следующими аргументами:

  • применяемая операция: 'I', 'R' или 'D'

  • фактический символ в строке 1

  • фактический символ в строке 2

  • позиция в строке 1

  • позиция в строке 2

  • оставшиеся символы в строке 1

  • оставшиеся символы в строке 2

Пользовательская функция должна возвратить положительное целое число, описывающее цену это конкретной операции, но она может определить использование только нескольких из предоставленных аргументов.

Подход с пользовательской функцией предоставляет возможность учесть соотношение и/или разницу между определёнными символами, или даже контекст, в котором эти символы появляются, чтобы определить цену операций вставки, замены и удаления, но ценой потери всей оптимизации, достигнутой для регистров cpu и кэша, которая работала в двух других вариантах.

См. также soundex(), similar_text() и metaphone().


Назад Оглавление Вперёд
join Вверхlocaleconv