46 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								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/)
							 |