ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. 
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ символа, Π½Π°Π΄ΠΎ, начиная с ΠΊΠΎΡ€Π½Ρ Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠ΄Ρ‚ΠΈ Π²Π½ΠΈΠ· Π΄ΠΎ Π»ΠΈΡΡ‚Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ символу. ΠŸΡ€ΠΈ этом слСдуСт Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны Π½Π° Ρ‚Π΅Ρ… Π΄ΡƒΠ³Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ. Адаптивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΡ‹ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌ здСсь. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΡΡ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΄Π΅Ρ€Π΅Π²ΠΎ постоянно пСрСстраиваСтся, Ρ‚. Π΅. ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ΄Ρ‹… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π° основываСтся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ символы Π² Ρ‚Скстах ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ частотой.

ΠŸΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ записываСм Π² Ρ„иксированном количСствС Π±ΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅, ΠΈΠ»ΠΈ Π² Π΄Π²ΡƒΡ….

Однако, Ρ‚.ΠΊ. Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ символы Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΆΠ΅? ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ символы Π² Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ количСствС Π±ΠΈΡ‚, Π° Π΄Π»Ρ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ символов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹. Π’ΠΎΠ³Π΄Π° суммарная Π΄Π»ΠΈΠ½Π° Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ мСньшС.

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

Π—Π°ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ строку «Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°» .

Π’Π½Π°Ρ‡Π°Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа Π² Ρ‚СкстС.

Π‘.

ΠΆ.

Π°.

Ρ‚.

ΠΈ.

Π΅.

Π₯.

Ρ„.

ΠΌ.

Π½.

Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° называСтся «Ρ‚Π°Π±Π»ΠΈΡ†Π° частот» .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π£Π·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π½Π°Π±ΠΎΡ€ΠΎΠΌ символов ΠΈ Ρ‡ΠΈΡΠ»ΠΎΠΌ — суммарным количСством Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… символов Π² Ρ‚СкстС. НазовСм ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ число — вСсом ΡƒΠ·Π»Π°.

Π›ΠΈΡΡ‚ΡŒΡΠΌΠΈ Π΄Π΅Ρ€Π΅Π²Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ·Π»Ρ‹, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΈΠΌ символом:

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅ΠΌ цикличСски Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • 1) Π˜Ρ‰Π΅ΠΌ срСди ΡƒΠ·Π»ΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… родитСля, Π΄Π²Π° ΡƒΠ·Π»Π°, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π² ΡΡƒΠΌΠΌΠ΅ наимСньший вСс.
  • 2) Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π», Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π²Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π°. Π•Π³ΠΎ вСсом Π±ΡƒΠ΄Π΅Ρ‚ сумма вСсов Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΡƒΠ»ΠΎΠ². Π•Π³ΠΎ Π½Π°Π±ΠΎΡ€ символов Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ объСдинСния Π½Π°Π±ΠΎΡ€ΠΎΠ² символов Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π».

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π».

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΠΎΡ„Ρ„ΠΌΠ°Π½ символ.

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π».

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.
Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΠΌ Π΄ΡƒΠ³ΠΈ, ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ Π²Π½ΠΈΠ·, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡƒΠ³Π΅ напишСм 0, Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ 1.

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ символа, Π½Π°Π΄ΠΎ, начиная с ΠΊΠΎΡ€Π½Ρ Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠ΄Ρ‚ΠΈ Π²Π½ΠΈΠ· Π΄ΠΎ Π»ΠΈΡΡ‚Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ символу. ΠŸΡ€ΠΈ этом слСдуСт Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны Π½Π° Ρ‚Π΅Ρ… Π΄ΡƒΠ³Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ.

ΠŸΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹.

Π‘.

ΠΆ.

Π°.

Ρ‚.

ΠΈ.

Π΅.

Π₯.

Ρ„.

ΠΌ.

Π½.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ являСтся прСфиксным, Ρ‚. Π΅. Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ΄ символа Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся прСфиксом ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ символа. Π’Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ символов ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

Как Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ закодированная строка:

Π‘.

ΠΆ.

Π°.

Ρ‚.

ΠΈ.

Π΅.

Π₯.

Π°.

Ρ„.

Ρ„.

ΠΌ.

Π°.

Π½.

Π°.

Π’.Π΅.

Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Для дСкодирования ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ построСнным Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ. НачинаСм с ΠΊΠΎΡ€Π½Ρ Π΄Π΅Ρ€Π΅Π²Π° ΠΈ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π° Π±Π΅Ρ€Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΠΎ тСкста.

Π’ Ρ†ΠΈΠΊΠ»Π΅ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

  • 1) Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π°, ΠΈ ΠΈΠ΄Π΅ΠΌ Π² Π½ΠΈΠ· ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΏΠΎ Π΄ΡƒΠ³Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
  • 2) ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π±ΠΈΡ‚Ρƒ.
  • 3) Если сСйчас находимся Π² Π»ΠΈΡΡ‚Π΅ Π΄Π΅Ρ€Π΅Π²Π°: Ρ‡ΠΈΡ‚Π°Π΅ΠΌ символ находящийся Π² ΡΡ‚ΠΎΠΌ листС ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСкодирования, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ снова Π² ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π°.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкста

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… трСбуСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ частот, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π΄ΡƒΠ³ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π»ΠΈΡΡŒ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄ΡƒΠ³Π°Ρ…, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΠΊΡƒ ΡƒΠ·Π»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ значСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ частот Π½ΡƒΠΆΠ½ΠΎ всСгда ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π»Π΅Π²ΡƒΡŽ Π΄ΡƒΠ³Ρƒ 1, Π° ΠΏΡ€Π°Π²ΡƒΡŽ 0 (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’ΠΈΠ΄Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°

  • 1) статичСский
  • 2) динамичСский
  • 3) Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ

РассмотрСнный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ относится ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

БтатичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ отличаСтся ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° частот Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся ΠΏΠΎ Ρ‚Сксту, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся нСкоторая Ρ€Π°Π½Π΅Π΅ вычислСнная Ρ‚Π°Π±Π»ΠΈΡ†Π°. БоотвСтствСнно, для динамичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° трСбуСтся Π΄Π²Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ Ρ‚Сксту, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ для построСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²Ρ‚ΠΎΡ€ΠΎΠΉ? для кодирования. Для статичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄, Ρ‚.ΠΊ. Ρ‚Π°Π±Π»ΠΈΡ†Π° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ.

ЕстСствСнно, ΠΏΡ€ΠΈ использовании статичСского Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ риск Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈΠ·-Π·Π° нСсоотвСтствия Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… частот ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° статичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, извСстно, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… тСкстах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ худоТСствСнная Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°, ΠΆΡƒΡ€Π½Π°Π»Ρ‹, частоты символов ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСкстов.

Адаптивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΡ‹ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌ здСсь. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΡΡ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΄Π΅Ρ€Π΅Π²ΠΎ постоянно пСрСстраиваСтся, Ρ‚. Π΅. ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ΄Ρ‹ символов.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ часто Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

  • 1) статичСский ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉ.
  • 2) динамичСский ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ.

ΠŸΡ€ΠΈ этом, ΠΊΠΎΠ³Π΄Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ динамичСский ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π·Π΄Π΅ΡΡŒ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ динамичСским ΠΊΠ°ΠΊ «Π‘татичСский», Π° Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌ? «Π”инамичСским». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ? Π² Ρ€Π°Π·Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ для курса «JScript»

Π’Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

  • 1) Ρ‚Π°Π±Π»ΠΈΡ†Π° частот.
  • 2) ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа.
  • 3) Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (Π±Π΅Π· кодирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ частот).
  • 4) Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π°).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π’Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π° Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π’Π°Π±Π»ΠΈΡ†Π° частот:

Π‘=1.

ΠΆ=1.

Π°=4.

Ρ‚=1.

ΠΈ=1.

Π΅=1.

=1.

Π₯=1.

Ρ„=2.

ΠΌ=1.

Π½=1.

ΠšΠΎΠ΄Ρ‹ символов:

Π‘=0001.

ΠΆ=0000.

Π°=01.

Ρ‚=0010.

ΠΈ=0011.

Π΅=1011.

=1010.

Π₯=111.

Ρ„=110.

ΠΌ=1000.

Π½=1001.

Π—Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст:

Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст:

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания Π΄Π΅Ρ€Π΅Π²Π° Π½Π° Jscript

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Jscript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ся Π½Π° ΡΠΊΡ€Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.

Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Алгоритм Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

Node = new Object ().

Node. Text = «AB» .

Node. Count = 5.

Left = new Object ().

Left. Text = «A» .

Left. Count = 2.

Node. Left = Left.

Right = new Object ().

Right. Text = «B» .

Right. Count = 3.

Node. Right = Right.

function WriteTree (Prefix, N).

{.

if (N == undefined).

return.

WScript. Echo (Prefix + «text: «+N. Text+», count: «+N. Count).

WriteTree (Prefix+" «, N. Left).

WriteTree (Prefix+" «, N. Right).

}.

WriteTree (««, Node).

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½:

text: AB, count: 5.

text: A, count: 2.

text: B, count: 3.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅):

function TreeNode (Text, Count).

{.

this. Text = Text.

this. Count = Count.

}.

TreeNode. prototype. WriteTree = function (Prefix).

{.

if (Prefix == undefined).

Prefix = ««.

WScript. Echo (Prefix + «text: «+.

this. Text+", count: «+this. Count).

if (this. Left! = undefined).

this. Left. WriteTree (Prefix+" «).

if (this. Right! = undefined).

this. Right. WriteTree (Prefix+" «).

}.

Node = new TreeNode («AB», 5).

Node. Left = new TreeNode («A», 2).

Node. Right = new TreeNode («B», 3).

Node. WriteTree ().

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ