UTILS.
ทำงานในเบราว์เซอร์ 100%

เครื่องคำนวณระยะแฮมมิง

นับตำแหน่งที่สตริง บิตสตริง หรือค่าฐานสิบหกที่มีความยาวเท่ากันสองชุดต่างกัน พร้อมระยะที่ปรับให้เป็นบรรทัดฐานและการไฮไลต์ diff ของตำแหน่งที่ไม่ตรงกัน

ผลลัพธ์

เกี่ยวกับเครื่องมือนี้

เครื่องคำนวณระยะแฮมมิงจะนับตำแหน่งที่อินพุตความยาวเท่ากันสองชุดต่างกัน ซึ่งเป็นเมตริกหลักเบื้องหลังรหัสตรวจจับและแก้ไขข้อผิดพลาด อินพุตทั้งสองต้องมีความยาวเท่ากัน หากไม่เท่ากัน เครื่องมือจะแสดงข้อผิดพลาดพร้อมความยาวของแต่ละชุดอย่างชัดเจนแทนที่จะเดาการจัดเรียง เครื่องมือรายงานระยะดิบ ระยะที่ปรับให้เป็นบรรทัดฐาน (ระยะ ÷ ความยาว จาก 0 ถึง 1) ความยาวที่เปรียบเทียบ จำนวนตำแหน่งที่ตรงกัน และ diff รายตำแหน่งที่ไฮไลต์ทุกตำแหน่งที่ไม่ตรงกันด้วยสีแดง

สามโหมดครอบคลุมกรณีทั่วไป ในโหมดข้อความจะเปรียบเทียบสตริงทีละ code point ดังนั้นความยาวเท่ากันจึงหมายถึงจำนวนอักขระเท่ากัน ในโหมดไบนารีจะตรวจสอบว่าอินพุตแต่ละชุดมีเพียง 0 และ 1 ที่มีความยาวเท่ากัน แล้วนับตำแหน่งบิตที่ต่างกัน ซึ่งเทียบเท่ากับ popcount ของ XOR ของทั้งสอง ในโหมดฐานสิบหกจะแยกวิเคราะห์อินพุตทั้งสองเป็นเลขฐานสิบหกที่มีจำนวนหลักเท่ากัน XOR ทีละ nibble แล้วรวมบิตที่ตั้งไว้ ได้ระยะแฮมมิงระดับบิตที่แท้จริง โดยความยาวในที่นี้คือจำนวนบิตทั้งหมด (หลักฐานสิบหก × 4)

การคำนวณเป็นแบบบริสุทธิ์ กำหนดได้แน่นอน และทำงานออฟไลน์เต็มรูปแบบ ไม่มีสิ่งใดที่คุณป้อนออกจากเบราว์เซอร์ ระยะแฮมมิงใช้วัดว่าคำรหัสสองชุดต่างกันด้วยข้อผิดพลาดบิตเดียวกี่จุด ใช้เปรียบเทียบแฮชหรือลายนิ้วมือความยาวคงที่ และในสาขาชีวสารสนเทศใช้เปรียบเทียบลำดับความยาวเท่ากัน เนื่องจากต้องมีความยาวเท่ากัน จึงควรใช้ระยะแก้ไข (edit distance) แทนเมื่อสตริงอาจมีความยาวต่างกัน

คำถามที่พบบ่อย

ทำไมอินพุตทั้งสองต้องมีความยาวเท่ากัน?
ระยะแฮมมิงนิยามไว้สำหรับลำดับความยาวเท่ากันเท่านั้น โดยเปรียบเทียบตำแหน่ง i ของชุดหนึ่งกับตำแหน่ง i ของอีกชุด หากความยาวต่างกันจะไม่มีการจัดเรียงมาตรฐาน เครื่องมือจึงรายงานข้อผิดพลาดพร้อมความยาวทั้งสอง สำหรับอินพุตความยาวต่างกัน ให้ใช้ระยะเลเวนชไทน์ (edit distance) แทน
โหมดไบนารีนับอะไร?
โหมดนี้ตรวจสอบว่าอินพุตทั้งสองเป็นสตริงของ 0 และ 1 ที่มีความยาวเท่ากัน แล้วนับตำแหน่งบิตที่ต่างกัน ซึ่งเหมือนกับ population count (จำนวนบิตที่ตั้งไว้) ของ XOR ของบิตสตริงทั้งสอง
โหมดฐานสิบหกคำนวณระยะอย่างไร?
แต่ละหลักฐานสิบหกคือ nibble (4 บิต) เครื่องมือจะ XOR ค่าทั้งสองทีละหลักแล้วรวมบิตที่ตั้งไว้ในทุก nibble ได้ระยะแฮมมิงระดับบิต ความยาวที่ใช้ปรับให้เป็นบรรทัดฐานคือจำนวนบิตทั้งหมด นั่นคือจำนวนหลักฐานสิบหกคูณสี่
ระยะที่ปรับให้เป็นบรรทัดฐานคืออะไร?
คือระยะดิบหารด้วยความยาวที่เปรียบเทียบ ค่าอยู่ระหว่าง 0 (เหมือนกัน) และ 1 (ทุกตำแหน่งต่างกัน) ช่วยให้เปรียบเทียบอัตราความไม่ตรงกันระหว่างอินพุตความยาวต่างกันบนสเกล 0–1 เดียวกันได้

เครื่องมือเพิ่มเติม