การแฮชแบบม้วนในขั้นตอนวิธีของราบิน-คาร์ป ของ การแฮชแบบม้วน

ขั้นตอนวิธีของราบิน-คาร์ปใช้ฟังก์ชันการแฮชที่ง่ายมากซึ่งประกอบไปด้วยการบวกและ การคูณเท่านั้น พิจารณาข้อมูลนำเข้าที่มีข้อมูล n {\displaystyle n} ตัวและขณะนี้มีกรอบขนาด k {\displaystyle k} อยู่ในช่วง [ p , p + k − 1 ] {\displaystyle [p,p+k-1]} จะได้ว่า H ( p , p + k − 1 ) = c p a k − 1 + c p + 1 a k − 2 + c p + 2 a k − 3 + . . . + c p + k − 1 a 0 {\displaystyle H(p,p+k-1)=c_{p}a^{k-1}+c_{p+1}a^{k-2}+c_{p+2}a^{k-3}+...+c_{p+k-1}a^{0}} เมื่อ a {\displaystyle a} เป็นค่าคงที่ และ c p , . . . , c p + k − 1 {\displaystyle c_{p},...,c_{p+k-1}} เป็นข้อมูลที่อยู่ในกรอบดังกล่าว

เพื่อที่จะไม่ให้ค่า H {\displaystyle H} ใหญ่มากเกินไป จึงให้การดำเนินการทุกขั้นตอนอยู่ภายใต้มอดุโล m {\displaystyle m} การเลือกค่า a {\displaystyle a} และ m {\displaystyle m} ที่ไม่เหมาะสมอาจทำให้ฟังก์ชันแฮชมีโอกาสเกิดความผิดพลาดเชิงบวกสูง ซึ่งการเลือกที่ดีที่สุดคือค่า a {\displaystyle a} และ m {\displaystyle m} ควรจะเป็นจำนวนเฉพาะสัมพัทธ์กัน[ต้องการอ้างอิง] ดูรายละเอียดเพิ่มเติมที่ linear congruential generator

สมมุติว่าขณะนี้กรอบอยู่ในช่วง [ p , q ] {\displaystyle [p,q]} จะสามารถดำเนินการดังนี้ได้

  • ขยายกรอบไปทางด้านขวา การหาค่าแฮชก็คือการคำนวณหา H ( p , q + 1 ) {\displaystyle H(p,q+1)} ซึ่งสามารถอาศัยความสัมพันธ์ว่า H ( p , q + 1 ) = ( H ( p , q ) a + c q + 1 ) mod m {\displaystyle H(p,q+1)=(H(p,q)a+c_{q+1}){\bmod {m}}}
  • ลดขนาดกรอบทางด้านซ้าย การหาค่าแฮชก็คือการคำนวณหา H ( p + 1 , q ) {\displaystyle H(p+1,q)} ซึ่งสามารถอาศัยความสัมพันธ์ว่า H ( p + 1 , q ) = ( H ( p , q ) − c p a q − p ) mod m {\displaystyle H(p+1,q)=(H(p,q)-c_{p}a^{q-p}){\bmod {m}}}
  • ขยายกรอบไปทางด้านซ้าย
  • ลดขนาดกรอบทางด้านขวา
บทความนี้ยังเป็นโครง คุณสามารถช่วยวิกิพีเดียได้โดยเพิ่มข้อมูล

ใกล้เคียง

การแฮชแบบม้วน การแฮชสองชั้น การแข็งตัวขององคชาต การแข่งขันระหว่างสโมสรฟุตบอลลิเวอร์พูลกับสโมสรฟุตบอลแมนเชสเตอร์ยูไนเต็ด การแพทย์ทางเลือก การแข่งขันระหว่างสโมสรฟุตบอลอาร์เซนอลกับสโมสรฟุตบอลแมนเชสเตอร์ยูไนเต็ด การแท้ง การแปลการพินิจภายในผิด การแบ่งกลุ่มข้อมูลแบบค่าเฉลี่ย k การแต่งงานแบบไทย