Amaliy matematika va informatika




Download 8.41 Mb.
bet8/18
Sana06.07.2023
Hajmi8.41 Mb.
#76409
1   ...   4   5   6   7   8   9   10   11   ...   18
Bog'liq
Algoritmlar nazariyasi fanidan mavzu arxivlash algoritmi
1626543488910695 (1), Bajarish kerak, LAFVIN iBot Programming Education Robot Car, Арх cложных веб приложени Laravel ПЕРЕВОД 2020, Raqamli qurilmalarni loyihalashga kirish, Psixodiagnostika va eksperimental psixologiya (Z.Nishanova va b.), Elektromagnit maydon, Kompyuter arxitekturasi 1-amaliy ish, webb mustaqil ish, 11-sinf-adabiyot-2, MB Mustaqil ish, Презентация (1), Bekchanov, 5-maruza

2.2 Xuffmann algoritmi.


Bu algoritm 1952-yilda D.A. Xuffmann tomonidan ishlab chiqilgan. Xuffmann algoritmidan foydalanib faylni siqib chiqarishda biz birinchi navbatda faylni to’liq o’qib chiqish va kengaytirilgan ASCII to’plamidagi har bir belgi necha marta sodir bo’lishini hisoblashimiz kerak. Agar biz barcha 256 belgilarni hisobga olsak, unda biz uchun matn va EXE fayllarini siqishda hech qanday farq bo’lmaydi. Har bir belgi paydo bo’lish chastotasini hisoblab chiqqandan so’ng, ASCII kodlash jadvaliga qarab ikkilik kodlari hosil qiladi.
Misol.
Bizda 100 bayt uzunlikdagi fayl mavjud va 6 xil belgilar mavjud. Biz fayldagi har bir belgini paydo bo’lishini hisoblab chiqdik.:

Belgi

A

B

C

D

E

F

Kirish soni

10

20

30

5

25

10

Endi biz ushbu raqamlarni olamiz va ularni har bir belgi uchun paydo bo’lish chastotasi deb ataymiz.



Belgi

C

E

B

F

A

D

Kirish soni

30

25

20

10

10

5

Biz oxirgi jadvaldan eng kam chastotali 2 belgini olamiz. Bizning holatlarimizda, bu D(5) va F yoki A(10) har qanday belgi, biz ulardan birini,A ni olishimiz mumkin.


Biz D va A “tugun”lardan yangi “tugun” hosil qilamiz, ularning paydo bo’lish chastotasi D va A chastotalarining yig’indisiga teng bo’ladi:

Belgi

C

A

D

F

B

E

Kirish soni

30

10

5

10

20

25

Kadrdagi raqam D va A harflarining chastotalari yig’indisidir. Endi biz yana eng kam uchraydigan chastotali ikkita belgini qidirmoqdamiz. D va A ni hisobga olmaganda paydo bo’lish chastotasiga ega yangi “ tugun”. Endi eng past chastota F va u yangi “tugun”da. Shunga qaramay, biz tugunlarni birlashtirish ishlarini bajaramiz. Keyingi ikkita belgilar uchun jadvalni yana ko’rib chiqamiz ( B va E). Biz butun “daraxt” hosil bo’lguncha ushbu rejimga o’tamiz, ya’ni hamma narsa bitta tugunga tushguncha. Endi bizning “daraxti”miz yaratildi, biz faylni kodlashimiz mumkin. Biz har doim “ildiz”dan boshlashimiz kerak (Root). Birinchi belgini (C daraxtning bargini) kodlash bilan biz daraxtning shoxlari bo'ylab barcha burilishlarni kuzatamiz va chap burilish qilsak, 0-bitni va shunga o'xshash o'ng burilish uchun 1-bitni eslaymiz. Shunday qilib, C uchun chapga 55 ga o'tamiz (va 0 ni eslaymiz), so'ngra yana belgini (0) chapga o'tkazamiz. C belgimiz uchun Huffman kodi 00 ga teng. Keyingi belgilar uchun (A) biz olamiz - chapga, o'ngga, chapga, chapga, bu 0100 ketma-ketlikni o'zgartiradi. Yuqoridagi so'zlarni barcha belgilar uchun to'ldirgandan so'ng, biz quyidagilarni olamiz:


C = 00 (2 bit)
A = 0100 (4 bit)
D = 0101 (4 bit)
F = 011 (3 bit)
B = 10 (2 bit)
E = 11 (2 bit)
Misol.
WENEEDMORESNOWFORBETTERSKIING
Xuffman algoritmidan foydalanib arxivlang.

Download 8.41 Mb.
1   ...   4   5   6   7   8   9   10   11   ...   18




Download 8.41 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Amaliy matematika va informatika

Download 8.41 Mb.