فاصله همینگ

3-bit binary مکعب for finding Hamming distance
Two example distances: 100->011 has distance 3 (red path); 010->111 has distance 2 (blue path)
4-bit binary تسرکت for finding Hamming distance
Two example distances: 0100->1001 has distance 3 (red path); 0110->1110 has distance 1 (blue path)
در تئوری اطلاعات فاصله همینگ برای دو رشته با طول مساوی، برابر تعداد مکانهایی است که سمبولهای متناظر متفاوت هستند. به عبارت دیگر، کمترین تعداد جایگزینی‌هایی است که یک رشته به یک رشته دیگر تغییرپیدا کند، یا تعداد خطاهایی که یک رشته به رشته دیگر تبدیل گردد.
مثالها
فاصله همینگ بین:
« t o n e d »و« r o s e s »سه هست.
۱۰ ۱ ۱ ۱ ۰۱ و ۱۰ ۰ ۱ ۰ ۰۱ دو هست.
۲ ۱۷ ۳ ۸ ۹۶ و ۲ ۲۳ ۳ ۷ ۹۶ سه هست.
مشخصات
برای یک طول ثابت n، فاصله همینگ یک معیاراندازه روی فضای برداری از کلماتی با آن طول می‌باشد، بطوری‌که دارای شرایط غیر منفی، هویت متقارن و غیر قابل تشخیص تحقق می‌یابد، و آن می‌تواند به خوبی مسئله ارضاء نابرابری مثلث رابوسیله استقراءکامل نشان دهد. فاصله همینگ بین دوکلمه a و b می‌تواند همچنین بوسیله وزن هامینگ a-b برای یک انتخاب مناسب از عملگر - مشاهده گردد.
برای رشته دودویی a و b فاصله همینگ برابر با تعداد یک‌های a یای مانعهالجمع b می‌باشد. فضای برداری رشته‌های دودویی با طول n، با فاصله همینگ، به عنوان Hamming cube شناخته می‌شود;که آن معادل با فضای برداری مجموعه فواصل بین برداری در یک گراف ابر مکعب می‌باشد. می‌توان یک رشته دودویی با طول n رادر نشان داد بطوری‌که هر سمبل در رشته به عنوان یک مولفه حقیقی رفتار نماید. با این تعبیه، رشته هاراس‌های یک ابرمکعب n بعدی را شکل می‌دهند، و فاصله همینگ رشته‌ها برابر با فاصله مانهاتان (فاصله منهتن)بین راس‌ها می‌باشد.
تاریخچه و کاربردها
فاصله هامینگ از نام ریچارد همینگ گرفته شده‌است. که در مقاله بنیادی‌اش درمورد کد همینگ معرفی شد. که در ارتباطات برای شمارش تعدادبیت‌های معکوس دریک کلمه دودویی با طول ثابت جهت تخمین خطارا می‌شمارد وبنابراین اکثر مواقع به آن signal distance گفته می‌شود. آنالیز وزن همینگ در چندین جا شامل نظریه اطلاعات، نظریه کدگذاری و رمزنگاری مورد استفاده قرارگرفته‌است. بهر حال برای مقایسه رشته‌های باطول متفاوت یا رشته‌های که شامل حذف یا درج می‌باشند اما شامل جابجایی نمی‌باشند اندازه‌گیری‌های پیچیده‌تری مانند فاصله لون‌اشتاین مورد نیاز می‌باشد. برای رشته‌های q تایی روی الفبای q ≥ ۲ فاصله همینگ در حالت ماژولایون متعامد انجام می‌گیرد. درحالی که Lee distance برای ماژولاسیون فازی صورت می‌گیرد. در حالت q=2,q=۳ دو حالت فاصله فراهم گردیده‌است. فاصله همینگ همچنین درکلاس بندی فاصله ژنتیکی مورد استفاده قرار گرفته‌است. در Lee distance نقاط یک von Neumann neighborhood آن نقطه را تشکیل می‌دهند.
مثال الگوریتم
تابع پایتون فاصله همینگ بین دورشته با طول مساوی رامحاسبه می‌کند. با ایجاد یک دنباله از صفر و یک‌ها برابری یا عدم برابری دو رشته را نشان می‌دهیم و سپس دنباله را جمع می‌کنیم.
def hamming_distance(s1, s2):
assert len(s1) == len(s2)
return sum(ch1!= ch2 for ch1, ch2 in zip(s1, s2))
تابع C زیر فاصله همینگ دو عدد صحیح را محاسبه می‌کند(شامل مقادیر دودویی به صورت دنباله‌ای از بیت‌ها). زمان اجرای زیر برنامه بر اساس تعدادبیت‌های اعداد ورودی مشخص می‌گردد. آن bitwise را برای دو وروی محاسبه می‌کند. و سپس وزن همینگ نتیجه را (تعداد بیت‌های غیر صفر)با استفاده از الگوریتم harvtxt۱۹۶۰ پیدا می‌کند.
unsigned hamdist(unsigned x, unsigned y)
unsigned dist = 0, val = x ^ y;
// Count the number of set bits
while(val)
++dist;
val -= val - 1;
return dist;
کد همینگ
ریچارد همینگ