freeCodeCamp/guide/arabic/algorithms/string-matching-algorithms/rabin-karp-algorithm/index.md

46 lines
2.2 KiB
Markdown
Raw Normal View History

---
title: Rabin Karp Algorithm
localeTitle: خوارزمية رابين كارب
---
## خوارزمية رابين كارب
* خوارزمية مطابقة / بحث عن الخوارزمية طورها مايكل رابين وريتشارد م. كارب.
* يستخدم تقنية **_التجزئة_** و **_القوة الغاشمة_** للمقارنة.
#### شروط مهمة
* **_النمط_** هو السلسلة المراد البحث عنها. النظر في طول نمط كأحرف **_M._**
* **_النص_** هو **_النص_** الكامل الذي سيتم البحث عن النمط منه. النظر في طول النص كأحرف **_N._**
#### ما هي القوة الغاشمة المقارنة؟
في مقارنة القوة الغاشمة يتم مقارنة كل حرف للنمط مع كل حرف من النص حتى يتم العثور على أحرف غير متطابقة.
#### العمل من خوارزمية رابين كارب
1. حساب قيمة التجزئة _للنمط_
2. حساب قيمة التجزئة من الشخصيات _M_ الأولى من _النص_
3. قارن بين قيم التجزئة
4. إذا كانت غير متساوية ، قم بحساب قيمة التجزئة للأحرف _M_ _للنص التالي_ وقارن مرة أخرى.
5. إذا كانوا متساوين ، قم بإجراء مقارنة القوة الغاشمة.
`hash_p = hash value of pattern
hash_t = hash value of first M letters in body of text
do
if (hash_p == hash_t)
brute force comparison of pattern and selected section of text
hash_t= hash value of next section of text, one character over
while (end of text or brute force comparison == true)
`
#### ميزة أكثر من خوارزمية مطابقة سلسلة ناييف
ينتج عن هذه التقنية مقارنة واحدة فقط لكل تسلسل فرعي للنص ، وتكون القوة الغاشمة مطلوبة فقط عندما تتطابق قيم هاش.
#### تطبيقات
* **_كشف الانتحال_**
#### معلومات اكثر:
[رابين كارب على ويكيبيديا](https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm/)