Muhammad al-Xorazmiy nomidagi
Toshkent Axborot Texnalogiyalari universiteti Samarqand filiali
Kompyuter injineringi fakulteti
Kafedra Kompyuter injineringi
Ma`lumotlar tuzilmasi va algoritmi fanidan
Amaliy ish
Mavzu: Ma’lumotlar tuzilmasi va algoritmlar fanidan ko‘nikmaga ega bo‘lish.
Bajardi: DI-022-03-guruh talabasi
Amonov Soxib
Tekshirdi: Eldor Umarov
Samarqand-2023
"Heshlashning metod svyortkasi" yoki "reduce" algoritmi, bir nechta qiymatlarni birlashtirish uchun ishlatiladi. Bu metodga "reduce" ham deyiladi. Bu algoritm, bir birlashtirilgan funksiya (reduce function) yordamida ro'yxatni yoki boshqa ma'lumotlar to'plamini birlashtiradi va u bir qiymatga o'giradi.
Python tilidagi `functools.reduce` funksiyasi bu algoritmda amalga oshirilgan algoritmi ifodalaydi. Quyidagi, o'zingizning F.I.SH. ni hesh qiymatini topuvchi dastur misoli:
```python
from functools import reduce
def hash_fold(surname, name, patronymic):
# Birlashtirilgan hesh funksiyasi (xor operatorini ishlatamiz)
combine_hashes = lambda x, y: x ^ y
# Har bir F.I.SH. qiymatini heshlash
surname_hash = hash(surname)
name_hash = hash(name)
patronymic_hash = hash(patronymic)
# Birlashtirilgan hesh qiymatini topish
result_hash = reduce(combine_hashes, [surname_hash, name_hash, patronymic_hash])
return result_hash
# Test
surname = "Smith"
name = "John"
patronymic = "Doe"
# F.I.SH. hesh qiymatini olish
hash_value = hash_fold(surname, name, patronymic)
print(f"Hesh qiymati: {hash_value}")
```
Bu dasturda `functools.reduce` funksiyasi orqali F.I.SH. ning har bir qiymatini heshlayib, `xor` (bitlarni almashtirish) operatori orqali birlashtiradi. Natijada, F.I.SH. ning hesh qiymati chiqadi.
|