خوارزمية (Lahn Algorithim)

  • hazem94

السّلام عليكم,

إخوتي هل يمكنكم مساعدتي بفهم الخوازمية التالية "مأخوذة من محاضرة من جامعة أمريكية":

def luhn_sum(n):
"""Return the digit sum of n computed by the Luhn algorithm"""    
   if n < 10:
    return n 
   else:
    all_but_last, last = split(n)
    return luhn_sum_double(all_but_last) + last   

def luhn_sum_double(n):   
"""Return the  Luhn sum of n, doubling the last digit."""               
   all_but_last, last = split(n)    
   luhn_digit= sum_digits(2 * last)   
   if n < 10:
    return luhn_digit 
   else:
    return luhn_sum(all_but_last) + luhn_digit
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

إذا كان العدد أصغر من 10 ستعود luhn_sum به

إذا كان العدد أكبر من 10 تقوم بفصله إلى شطرين : الشطر الأول هو الأعداد قبل العدد الأخير والشطر الثاني هو العدد الأخير.

ثم تفكه : تسند الشطرين إلى متغيرين

وتعود بالشطر الثاني مجموعا بالقيمة المعادة من خوارمية luhn_sum_double المطبقة على الشطر الأول

لكن لم أعرف الهدف من هذه الخوارزمية صراحة!! سأقرأ عنها.