ما هي خوارزمية لون؟
خوارزمية لون، والمعروفة أيضًا باسم خوارزمية "mod 10"، هي صيغة بسيطة للمجموع الاختباري ابتكرها العالم هانز بيتر لون من شركة IBM عام 1954. تُستخدم للتحقق من صحة أرقام التعريف مثل أرقام بطاقات الائتمان والخصم، وأرقام التسلسل الخاصة بالهواتف (IMEI)، والعديد من أرقام الهوية الوطنية. وتتميّز بقدرتها على كشف أخطاء الرقم الواحد ومعظم أخطاء تبديل ترتيب الأرقام، لكنها ليست وسيلة حماية تشفيرية — بل مجرد فحص أساسي لسلامة البيانات.
كيفية استخدام هذه الحاسبة
اكتب الرقم الذي تريد التحقق منه في الحقل (تُتجاهَل المسافات والشرطات تلقائيًا). تقوم الحاسبة بمعالجة الأرقام وتطبيق المجموع الاختباري لخوارزمية لون، ثم تخبرك ما إذا كان الرقم صحيحًا أم غير صحيح، إلى جانب المجموع التراكمي، وباقي قسمة المجموع على 10، ورقم التحقق الأخير.
شرح المعادلة
اقرأ الأرقام من اليمين إلى اليسار. اترك الرقم الموجود في أقصى اليمين (رقم التحقق) كما هو، ثم ضاعِف كل رقم ثانٍ. إذا نتج عن المضاعفة رقم أكبر من 9، اطرح منه 9 (وهو ما يعادل جمع خانتيه، مثلًا \(8\times2=16 \rightarrow 1+6=7\)). اجمع كل القيم الناتجة. فإذا كان المجموع قابلًا للقسمة على 10 دون باقٍ، فإن الرقم يجتاز فحص لون.
$$\text{Valid} \iff \left(\sum_{i=0}^{n-1} f(d_i)\right) \bmod 10 = 0 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= i\text{-th digit of } \text{Number} \text{ (from right)} \\ f(d_i) &= \begin{cases} d_i & i \text{ even} \\ 2d_i - 9\,[2d_i>9] & i \text{ odd} \end{cases} \end{aligned} \right.$$
مثال تطبيقي
لنأخذ الرقم 79927398713. عند مضاعفة كل رقم ثانٍ من اليمين وتقليص القيم التي تتجاوز 9، نحصل على الأرقام المعدّلة التي يبلغ مجموعها 70. وبما أن \(70 \bmod 10 = 0\)، فإن الرقم صحيح.
الأسئلة الشائعة
هل النتيجة الصحيحة في فحص لون تعني أن البطاقة حقيقية؟ لا. فهي تؤكّد فقط أن صياغة الرقم سليمة؛ ولا تتحقق ممّا إذا كان الحساب موجودًا فعلًا أو يحتوي على رصيد.
ما الأحرف المسموح بها؟ تُستخدم الأرقام فقط؛ أما المسافات والشرطات وغيرها من الرموز فتُحذف قبل إجراء الحساب.
لماذا نطرح 9 عند المضاعفة؟ لأن طرح 9 من الرقم المُضاعَف الذي يتجاوز 9 يعطي النتيجة نفسها التي نحصل عليها عند جمع خانتيه، وهو تحديدًا ما تتطلبه قاعدة لون الأصلية.