Foundationপ্রথম নীতি থেকে
LEVEL 6 · Data Structures & Algorithms

Rabin-Karp

রেবিন-কার্প

Text-এর প্রতিটা m-length window-র rolling hash বানিয়ে pattern-এর hash-এর সাথে মিলিয়ে দেখা string matching — গড়ে O(n+m), খারাপে O(nm)।

also: rabin karp, rolling hash, karp-rabin

Window এক ঘর সরালে পুরো hash নতুন করে না বানাতে হয় — এক update:

h_new = ((h_old - ord(text[i]) * high) * BASE + ord(text[i + m])) % MOD

Hash মিললেই সত্যি মিল নয় — character-by-character verify লাগে; মিথ্যা positive-কে spurious hit বলে, ভালো modulus বাছলে বিরল।

Single pattern-এ KMP-র চেয়ে পার্থক্য কম; আসল শক্তি multi-pattern — একই text scan-এ kটা pattern-এর hash-set মেলানো যায়। Plagiarism detection, document similarity — এই কাজেই ব্যবহৃত।