162
qanday belgining maksimal kodidan oshib ketishi kerak va odatda asosiy
son tanlanadi (garchi raqamning soddaligi uchun qat'iy talablarga javob
bermagan bo'lsa ham). Masalan, 31, 37 va boshqalar asoslari inglizcha
kichik harflarning satrlari uchun javob beradi.
Shunga qaramay, shuni ta'kidlash joizki,
biz xeshni hech qanday
cheklamaymiz, bu xeshlash ta'rifiga ziddir. Bunday holda, ikkita chiqish
usuli mavjud: modul boʻyicha boʻlish amalidan yoki uzun arifmetikadan
foydalanish.
Birinchi variant uzun arifmetikaga ega bo'lmagan tillarda keng
qo'llaniladi. Bundan tashqari, xesh saqlanadigan butun sonli ma'lumotlar
turi bu bo'linishni avtomatik ravishda amalga oshiradi (turlarning
ko'payishi natijasida qo'shimcha bitlar avtomatik ravishda yo'qoladi).
Natijada biz cheklangan xeshlar to'plamini olamiz, ammo yana kolliziya
xavfi mavjud. Bundan tashqari, ko'p polinomli xeshni "buzish" ehtimoli
mavjud.
Ikkinchi variantda kolliziya ehtimoli pastroq. Biroq,
kattaroq
xeshlar to'plamini qo'llab-quvvatlash, qo'shimcha xotira va ikkita xeshni
taqqoslash uchun zarur bo'lgan vaqtni talab qiladi,
bu oddiy
ma'lumotlarni taqqoslashdan ko'ra tezroq.
Masalan, satrni inglizcha kichik harflardan iborat deb taxmin
qilamiz. Quyida 37 raqamini asos qilib olamiz.