Xeshing-ma'lum bir xususiyatga EGA bo'lmagan pastki to'plamlarda (elementlarning to'plamlari) bir nechta kalitlarni (odatda saqlash elementlarini va odatda matn satrlari yoki raqamlar shaklida taqdim etilgan) ajratish



Download 62,22 Kb.
bet2/9
Sana15.11.2022
Hajmi62,22 Kb.
#866865
1   2   3   4   5   6   7   8   9
Bog'liq
Mavzu Xesh jadvallari va funktsiyalari

Xesh vazifalari
Xesh funktsiyasi k kalitini olgan va k bilan bog'liq ma'lumotlarni olish uchun xesh jadvalida qidirilayotgan manzilni qaytaradigan h(K) funktsiyasidir, masalan, k abonentning telefon raqami va kerakli ma'lumot uning nomi. Bu holda funktsiya bizga kerakli manzilni topish uchun aniq ma'lumot beradi. Telefon daftariga misol, taqdim etilgan CDda demo dasturi bilan tasvirlangan.

Qarama-qarshilik h(K1) = h(K2), K1 K K2 esa. Bunday holda, aniq ma'lumot saqlash uchun yangi joy topish kerak. Shubhasiz, to'qnashuvlar sonini kamaytirish kerak. Quyidagi alohida bo'lim to'qnashuvlarni hal qilish usullariga bag'ishlanadi.


Yaxshi Xesh funktsiyasi ikki talabni qondirishi kerak:

uning hisob-kitoblari juda tez bajarilishi kerak;


bu to'qnashuvlar sonini kamaytirish kerak.


Shunday qilib, yaxshi Xesh funktsiyasining birinchi xususiyati kompyuterga, ikkinchisi esa ma'lumotlarga bog'liq. Agar barcha ma'lumotlar tasodifiy bo'lsa, unda Xesh funktsiyalari juda oddiy (masalan, bir nechta kalit) bo'ladi. Biroq, amalda, tasodifiy ma'lumotlar juda kam uchraydi va siz butun kalitga bog'liq bo'lgan funktsiyani yaratishingiz kerak.


Nazariy jihatdan haqiqiy tasodifiy bo'lmagan fayllardan tasodifiy ma'lumotlarni yaratish uchun Xesh funktsiyasini aniqlash mumkin emas. Biroq, amalda, oddiy arifmetik operatsiyalar yordamida juda yaxshi taqlid qilish mumkin. Bundan tashqari, u tez-tez (haqiqiy tasodifiy ma'lumotlarga nisbatan kam) to'qnashuvlar minimal soni bilan xesh vazifalarni yaratish uchun ma'lumotlar xususiyatlarini foydalanishingiz mumkin [3].


Ehtimol, xeshingning eng aniq va eng oddiy usullaridan biri kvadratning o'rta kvadrat usuli bo'lib, kalit kvadratga o'rnatiladi va o'rtada bir nechta raqam olinadi. Bu erda va bundan tashqari, kalit birinchi navbatda arifmetik operatsiyalarni bajarish uchun butun songa to'g'ri keladi deb taxmin qilinadi. Biroq, bu usul chap yoki o'ng tomonda juda ko'p nol bo'lmasa yaxshi ishlaydi. Ko'pgina testlar ikkita asosiy xeshing turini yaxshi ko'rsatdi, ulardan biri bo'linishga asoslangan, ikkinchisi esa ko'paytiriladi. Biroq, bu mavjud bo'lgan yagona usullar emas, bundan tashqari, ular har doim ham maqbul emas.




Bo'linish usuli

Bo'linish usuli juda oddiy - qolgan qismi m ga bo'linadi:


h(K) = K mod M


Ushbu o'zgarishni diqqat bilan tanlash kerak. Agar siz uni 100ga tenglashtirsangiz va kalit tug'ilgan yilga to'g'ri keladigan bo'lsa, unda tarqatish bir qator vazifalar uchun juda noaniq bo'ladi (masalan, yosh beysbol ligasi o'yinchilarini aniqlash). Bundan tashqari, funktsiya ham doimiy qiymati hatto k va g'alati bo'lsa ham bo'ladi - g'alati bilan, bu kiruvchi natija olib keladi. Bundan ham yomoni, Agar M kompyuterning raqamlash darajasi bo'lsa, natija faqat o'ngdagi kalitning bir nechta raqamlariga bog'liq bo'ladi. Xuddi shunday, m ning uchta ko'pligi bo'lmasligi ham mumkin, chunki harfli kalitlarda ularning ikkitasi faqat harflarni almashtirish bilan farqlanadi, uchta ko'paytma farq bilan raqamli qiymatlarni berishi mumkin (qarang: [3], p.552). Yuqoridagi fikrlashlar oddiy raqamni ishlatish yaxshiroq degan fikrga olib keladi. Aksariyat hollarda bunday tanlov juda qoniqarli.


Yana bir misol – kalit, bir belgi liniyasi C. Xesh funktsiyasi birinchi va oxirgi belgilarni to'plash va keyinchalik 101 (jadval kattaligi) tomonidan bo'linishdan qolgan qoldiqni hisoblash orqali bu qatorni tamsayıga ko'rsatadi. Bu Xesh funktsiyasi bir xil birinchi va oxirgi belgilar bilan to'qnashuvga olib keladi. Misol uchun, "start" va "slant" satrlari 29 indeksida ko'rsatiladi. Bundan tashqari, bir xesh vazifasini muomala, chiziq barcha belgilarni sarhisob. "Bad" va "dab" satrlari bir xil indeksga aylanadi. Eng yaxshi natijalar belgilar bit aralashtirish ishlab chiqarish xesh vazifasini beradi.

Amalda, bo'linish usuli eng keng tarqalgan [7].





Download 62,22 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish