Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² DelphiΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 104

Автор Π”ΠΆΡƒΠ»ΠΈΠ°Π½ Π‘Π°ΠΊΠ½Π΅Π»Π»

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ с использованиСм словаря

Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 1977 Π³ΠΎΠ΄Π°, основныС усилия Π² области исслСдования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сТатия ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² кодирования с минимальной ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ Π¨Π΅Π½Π½ΠΎΠ½Π°-Π€Π°Π½ΠΎ ΠΈΠ»ΠΈ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°, ΠΈ Π±Ρ‹Π»ΠΈ посвящСны Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΡ… Π² динамичСскиС (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΠΎΠ΄ΠΎΠ² Π½Π΅ являлась Ρ‡Π°ΡΡ‚ΡŒΡŽ сТатого Ρ„Π°ΠΉΠ»Π°), Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ быстродСйствия, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ объСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ эффСктивности. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π΄Π²Π° ΠΈΠ·Ρ€Π°ΠΈΠ»ΡŒΡΠΊΠΈΡ… исслСдоватСля, Π―ΠΊΠΎΠ± Π—ΠΈΠ² (Jacob Ziv) ΠΈ Абрахам Π›Π΅ΠΌΠΏΠ΅Π»ΡŒ (Abraham Lempel), прСдставили ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ исслСдованиям Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π˜Ρ… основная идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… символов, Π° строк символов. Они задались Ρ†Π΅Π»ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Ρ€Π°Π½Π΅Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠΈΡ…ΡΡ Π² сТимаСмом Ρ„Π°ΠΉΠ»Π΅ Ρ„Ρ€Π°Π· для кодирования ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π°Π·.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ имССтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ языка. КаТдоС Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ тСкстовом Ρ„Π°ΠΉΠ»Π΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π² словарС. Если Π±Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сТатия, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° восстановлСния ΠΈΠΌΠ΅Π»ΠΈ доступ ΠΊ элСктронной вСрсии этого словаря, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… слов Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ указания Π½ΠΎΠΌΠ΅Ρ€Π° страницы ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° слова Π½Π° этой страницС. Π’ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ 2-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ цСлочислСнного значСния окаТутся достаточно для хранСния Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² страниц (найдСтся Π½Π΅ особСнно ΠΌΠ½ΠΎΠ³ΠΎ словарСй, содСрТащих Π±ΠΎΠ»Π΅Π΅ 65536 страниц), Π° Π±Π°ΠΉΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно для хранСния Π½ΠΎΠΌΠ΅Ρ€Π° слова Π½Π° страницС (ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС словаря приводится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 256 слов). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, нСзависимо ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ слова Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅, ΠΎΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‰Π°Π»ΠΎΡΡŒ Π±Ρ‹ трСмя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ сТатиС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… слов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ "Π²", "ΠΈΠ·", "Π½Π°" ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ Π±Ρ‹ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сТатых Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ слов содСрТит Ρ‚Ρ€ΠΈ ΠΈ большС Π±ΡƒΠΊΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ сТатого Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° исходного Ρ„Π°ΠΉΠ»Π°.

ОписаниС сТатия LZ77

Π’ основС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π—ΠΈΠ²ΠΎΠΌ ΠΈ Π›Π΅ΠΌΠΏΠ΅Π»Π΅ΠΌ, Π»Π΅ΠΆΠΈΡ‚ сТатиС с использованиСм строк словаря. Однако вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский, Π·Π°Ρ€Π°Π½Π΅Π΅ сгСнСрированный ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΈΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ "Π½Π° Π»Π΅Ρ‚Ρƒ", Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сТатия ΡƒΠΆΠ΅ встрСтила Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. А вмСсто использования Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² страниц ΠΈ слов ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ значСния расстояния ΠΈ Π΄Π»ΠΈΠ½Ρ‹. Π Π°Π±ΠΎΡ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π² Ρ…ΠΎΠ΄Π΅ считывания Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° прСдпринимаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ символов Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠΈΠΌΡΡ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ совпадСния вычисляСтся расстояниС ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΉ строки ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ количСство ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ² (Π΄Π»ΠΈΠ½Π°). Π’ случаС обнаруТСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… совпадСний выбираСтся самоС Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ….

Рассмотрим ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняСм сТатиС прСдлоТСния:

a cat is a cat is a cat

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ символ "Π°" Π½Π΅ совпадаСт Π½ΠΈ с ΠΎΠ΄Π½ΠΎΠΉ ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠ΅ΠΉΡΡ строкой (Π΄Π° просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄Π½Π° строка Π΅Ρ‰Π΅ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»Π°ΡΡŒ!), поэтому ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Π² сТатый ΠΏΠΎΡ‚ΠΎΠΊ Π±ΠΈΡ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΆΠ΅ слСдовало Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ ΠΈ символом "с". Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ "Π°" совпадаСт с ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ символом "Π°", Π½ΠΎ Π½Π° этом соотвСтствиС заканчиваСтся. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ строки. ΠŸΡ€ΠΈΠΌΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ соотвСтствиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ для Ρ‚Ρ€Π΅Ρ… символов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ символ "Π°", Π° Ρ‚Π°ΠΊΠΆΠ΅ символы "t", ΠΏΡ€ΠΎΠ±Π΅Π», "i", "s" ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π». Π’Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

-------+

a cat is I a cat is a cat

-------+^

Π³Π΄Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ²ΡˆΠΈΠ΅ΡΡ символы Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ€Π°ΠΌΠΊΡƒ (Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Π°ΠΊΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ (sliding window)), Π° тСкущая позиция ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° Π·Π½Π°ΠΊΠΎΠΌ вставки ( ^ ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ становится Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ интСрСсно. Набор символов "a cat is" Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ совпадаСт со строкой, ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠ΅ΠΉΡΡ Ρ€Π°Π½Π΅Π΅. Π‘ΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π°Ρ строка начинаСтся Π·Π° Π΄Π΅Π²ΡΡ‚ΡŒ символов Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π΄Π΅Π²ΡΡ‚ΡŒ символов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ вывСсти ΠΏΠ°Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ расстояниС/Π΄Π»ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС прСдставлСны строкой < 9,9> (ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π±ΠΈΡ‚ΠΎΠ²), Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ Π½Π° Π΄Π΅Π²ΡΡ‚ΡŒ символов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

---------------+

a cat is a cat is I a cat

---------------+^

Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ снова Π½Π°Π±ΠΎΡ€ символов Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ с ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠ΅ΠΉΡΡ строкой. МоТно ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡΡ‚ΡŒ символов с ΠΏΡΡ‚ΡŒΡŽ символами, располоТСнными Π»ΠΈΠ±ΠΎ Π½Π° 9, Π»ΠΈΠ±ΠΎ Π½Π° 18 символов Ρ€Π°Π½ΡŒΡˆΠ΅. Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, <9,5>. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сТатый ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

a cat is < 9,9> < 9,5>

ВосстановлСниС этого ΠΏΠΎΡ‚ΠΎΠΊΠ° Π±ΠΈΡ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ прСдставляСт особой слоТности. Π’ процСссС восстановлСния ΠΌΡ‹ строим Π±ΡƒΡ„Π΅Ρ€ восстановлСнных символов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ расстояниС/Π΄Π»ΠΈΠ½Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Ρ‹. Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π² сТатом ΠΏΠΎΡ‚ΠΎΠΊΠ΅ выводятся Π² восстановлСнный ΠΏΠΎΡ‚ΠΎΠΊ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ записаны.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π΅Π²ΡΡ‚ΡŒ символов Π² сТатом ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, поэтому ΠΎΠ½ΠΈ выводятся Π² восстановлСнный ΠΏΠΎΡ‚ΠΎΠΊ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ создаСтся Π±ΡƒΡ„Π΅Ρ€ (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ). На этом этапС Π±ΡƒΡ„Π΅Ρ€ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

--------+

a cat is I

--------+

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² сТатом ΠΏΠΎΡ‚ΠΎΠΊΠ΅ - ΠΏΠ°Ρ€Π° расстояниС/Π΄Π»ΠΈΠ½Π°, <9,9>. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ "вывСсти Π΄Π΅Π²ΡΡ‚ΡŒ символов, располоТСнныС Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Π² дСвяти Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π°". Π­Ρ‚ΠΈΠΌΠΈ Π΄Π΅Π²ΡΡ‚ΡŒΡŽ символами ΡΠ²Π»ΡΡŽΡ‚ΡΡ "a cat is", поэтому ΠΎΠ½ΠΈ выводятся Π² восстановлСнный ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€. Π˜Π½Π°Ρ‡Π΅ говоря, ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ Π²ΠΈΠ΄:

---------------+

a cat is a cat is |

---------------+

И снова, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² сТатом ΠΏΠΎΡ‚ΠΎΠΊΠ΅ - ΠΏΠ°Ρ€Π° расстояниС/Π΄Π»ΠΈΠ½Π°, < 9,5>. Π£Π²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° смогут Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ описанный Π±ΡƒΡ„Π΅Ρ€.

ΠŸΡ€ΠΈ рассмотрСнии этого нСбольшого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ ΠΏΠΎ сущСству Π½Π΅ Π½ΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Π² словарС, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΌ. ΠœΡ‹ всСго лишь воспользовались своим Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ для отыскания Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ строки Π² Ρ€Π°Π½Π΅Π΅ просмотрСнном Π½Π°Π±ΠΎΡ€Π΅ символов. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π½Π΅Π΅ просмотрСнныС Ρ„Ρ€Π°Π·Ρ‹ (ΠΈΠ»ΠΈ лСксСмы) Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдставляСт собой Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ лСксСму Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ этого словаря ΠΈ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ соотвСтствиС с Ρ€Π°Π½Π΅Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠΈΠΌΠΈΡΡ символами.

ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° Ρ€Π°Π½Π΅Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠΈΡ…ΡΡ символов ΠΊΠ°ΠΊ "ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π°" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π½Π°ΠΉΡ‚ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ соотвСтствиС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ n Π±Π°ΠΉΡ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ n Ρ€Π°Π²Π½ΠΎ 4 ΠΈΠ»ΠΈ 8 Кб (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ PKZIP Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Deflate (пониТСния порядка) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 32 Кб). ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ пСрСмСщаСтся Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎ ΡƒΠΆΠ΅ просмотрСнным Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π·Π°Ρ‡Π΅ΠΌ это дСлаСтся? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ€Π°Π½Π΅Π΅ просмотрСнный тСкст? ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос обусловлСн ΠΎΠ±Ρ‰Π΅ΠΉ структурой тСкста. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС считываСмый ΠΈ записываСмый тСкст ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ссылок (locality of reference). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ Π±ΠΎΠ»Π΅Π΅ вСроятно совпадСниС Π±Π»ΠΈΠ·ΠΊΠΎ располоТСнных символов, Π° Π½Π΅ располоТСнных Π²Π΄Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. НапримСр, Π² Ρ€ΠΎΠΌΠ°Π½Π΅ описываСмыС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π»ΠΈΡ†Π° ΠΈ мСста протСкания событий ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Ρ‹ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π³Π»Π°Π². Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ слова ΠΈ Ρ„Ρ€Π°Π·Ρ‹ Ρ‚ΠΈΠΏΠ° "ΠΈ", "Π²" ΠΈ "ΠΎΠ½ сказал" ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π² любом мСстС Ρ€ΠΎΠΌΠ°Π½Π°.

Для Π΄Ρ€ΡƒΠ³ΠΈΡ… тСкстов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ этому, Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ссылок. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ согласно ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ссылок ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ объСм Ρ€Π°Π½Π΅Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠ΅Π³ΠΎΡΡ тСкста, просматриваСмого с Ρ†Π΅Π»ΡŒΡŽ установки соотвСтствия ΠΌΠ΅ΠΆΠ΄Ρƒ строками. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° вСская ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ограничСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° связана с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ сТатиС с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ объСма просматриваСмого тСкста.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим, ΠΊΠ°ΠΊ выполняСтся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ расстояниС/ Π΄Π»ΠΈΠ½Π°. Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈ Π½Π° это Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ цСлСсообразно ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС. Если ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ послСдниС 4 Кб тСкста, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ расстояния ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 12 Π±ΠΈΡ‚Π°ΠΌΠΈ (2(^12^) ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ составляСт 4 Кб). Если ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ провСряСмых ΠΈ сопоставляСмых строк ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ 15 символами, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 4 Π±ΠΈΡ‚Π°ΠΌΠΈ, Π° ΠΏΠ°Ρ€Ρƒ расстояниС/Π΄Π»ΠΈΠ½Π° - двумя ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. МоТно Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΊΠ½ΠΎ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ€Π°Π²Π½Ρ‹ΠΌ 8 Кб ΠΈ максимум сСмь сопоставляСмых символов, ΠΈ ΠΏΡ€ΠΈ этом Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ΄Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»Π° Π±Ρ‹ 2 Π±Π°ΠΉΡ‚ΠΎΠ². Π‘ΠΆΠ°Ρ‚Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Π° Π½Π΅ ΠΊΠ°ΠΊ явно Π±ΠΎΠ»Π΅Π΅ слоТный ΠΏΠΎΡ‚ΠΎΠΊ Π±ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ² минимальной Π΄Π»ΠΈΠ½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΠ΄ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ расстояниС/Π΄Π»ΠΈΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ 2 Π±Π°ΠΉΡ‚Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ строки, содСрТащиС, ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅, Ρ‚Ρ€ΠΈ символа ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π²ΡˆΠΈΠΌΠΈΡΡ строками, ΠΏΡ€ΠΈ этом Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ внимания Π½Π° совпадСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… символов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.