"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > برنامج PHP لخوارزمية رابين كارب للبحث عن الأنماط

برنامج PHP لخوارزمية رابين كارب للبحث عن الأنماط

تم النشر بتاريخ 2024-09-02
تصفح:940

PHP Program for Rabin-Karp Algorithm for Pattern Searching

ما هي خوارزمية رابين كارب؟

خوارزمية Rabin-Karp عبارة عن خوارزمية مطابقة لنمط السلسلة التي تبحث بكفاءة عن تكرارات النمط داخل نص أكبر. تم تطويره بواسطة مايكل أو رابين وريتشارد إم كارب في عام 1987.

تستخدم الخوارزمية تقنية التجزئة لمقارنة قيم التجزئة للنمط والسلاسل الفرعية للنص. يعمل على النحو التالي:

  • احسب قيمة التجزئة للنمط والنافذة الأولى للنص.

  • حرك النمط فوق النص موضعًا واحدًا في كل مرة وقارن قيم التجزئة.

  • إذا كانت قيم التجزئة متطابقة، فقم بمقارنة أحرف النمط والنافذة الحالية للنص لتأكيد المطابقة.

  • إذا كان هناك تطابق، سجل موضع/فهرس التطابق.

  • احسب قيمة التجزئة للنافذة التالية من النص باستخدام وظيفة التجزئة المتداول.

  • كرر الخطوات من 3 إلى 5 حتى يتم التحقق من جميع مواضع النص.

تقوم وظيفة التجزئة المتداولة بكفاءة بتحديث قيمة التجزئة لكل نافذة جديدة عن طريق طرح مساهمة الحرف الأول في النافذة السابقة وإضافة مساهمة الحرف التالي في النافذة الجديدة. ويساعد هذا في تجنب إعادة حساب قيمة التجزئة من البداية لكل نافذة، مما يجعل الخوارزمية أكثر كفاءة.

برنامج PHP لخوارزمية رابين كارب للبحث عن الأنماط

";
      }

      // Calculate the hash value for the next window of text
      if ($i 

الإخراج

Pattern found at index 1 
Pattern found at index 4
Pattern found at index 7
Pattern found at index 10
Pattern found at index 13

شرح الكود

يطبق كود PHP خوارزمية Rabin-Karp للبحث عن الأنماط. يأخذ نمطًا ونصًا كمدخلات ويبحث عن تكرارات النمط داخل النص. تقوم الخوارزمية بحساب قيم التجزئة للنمط والنافذة الأولى للنص. ثم يقوم بعد ذلك بتمرير النمط فوق النص، ومقارنة قيم التجزئة للنافذة الحالية والنمط. إذا كانت قيم التجزئة متطابقة، فسيتم التحقق من الأحرف واحدًا تلو الآخر. إذا تم العثور على تطابق، فإنه يطبع الفهرس حيث يوجد النمط. تستخدم الخوارزمية وظيفة التجزئة المتداولة لتحديث قيمة التجزئة لكل نافذة بكفاءة. يوضح الكود استخدام الخوارزمية من خلال البحث عن النمط "BC" في النص "ABCABCABCABCABC".

خاتمة

في الختام، يقوم برنامج PHP بتنفيذ خوارزمية Rabin-Karp للبحث عن الأنماط بشكل فعال. من خلال استخدام دالة التجزئة المتداولة ومقارنة قيم التجزئة، تبحث الخوارزمية بكفاءة عن تكرارات النمط داخل نص أكبر. يحدد البرنامج بشكل صحيح المؤشرات التي يوجد بها النمط في النص ويخرج النتائج. مع بنية واضحة وحسابات التجزئة المناسبة، يوضح البرنامج وظيفة وفائدة خوارزمية Rabin-Karp للبحث عن الأنماط في PHP.

بيان الافراج تم نشر هذه المقالة على: https://www.tutorialspoint.com/php-program-for-rabin-karp-algorithm-for-pattern-searching. إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه .
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3