Oh ya, selain rolling hash, nama-nama yang tercantum merupakan nama ciptaan saya.
Rolling Hash
Teknik ini sangat umum digunakan. Saya mempelajarinya dari tutorial Topcoder.Ceritanya adalah diberikan sebuah string S.
Bagaimana kita mendapatkan nilai hash dari semua substring S yang memiliki panjang k?
Fungsi hash yang digunakan pada rolling hash adalah menganggap string sebagai bilangan basis 26. Lebih umum lagi, basis ini sebenarnya boleh berapa saja. Misalkan basis yang dipilih adalah B.
Anggap S = "ayamxzc" dan k=4. Jika h[i] menyatakan nilai hash untuk S[i..i+k-1], maka bisa digambarkan nilai h[0] sampai h[3] sebagai berikut: