Мы записали ребёнка в математический кружок по переписке - от Института Вейцмана. Сегодня они прислали первое задание - про разные системы записи чисел, шифры, штрих-коды итп.
В частности, там объясняется, как вычисляется контрольная цифра в израильских удостоверениях личности. Я всегда предполагал, что там будет что-то вроде "посчитать сумму цифр и взять остаток от деления на что-нибудь". На самом деле система вот какая:
1. Взять все цифры на чётных местах номера ID.
2. Умножить их на 2.
3. Если среди получившихся чисел есть двузначные (10, 12, 14, 16, или 18) - заменить каждое такое число суммой его цифр.
4. Просуммировать получившиеся числа и прибавить к ним сумму цифр на нечётных местах номера ID (естественно, не считая саму контрольную цифру).
5. Взять последнюю цифру (x) получившегося числа. Если это 0 - то 0 и будет контрольной цифрой. Если это не 0 - контрольной цифрой будет 10-x.
Например, если первые восемь цифр 31596276, то вот что получается:
1. 1, 9, 2, 6.
2. 2, 18, 4, 12.
3. 2, 9, 4, 3.
4. (2+9+4+3)+(3+5+6+7) = 39.
5. x=9. Поэтому контрольная цифра 1 (=10-9).
Эта поцедура, как оказалось, называется
Luhn Algorithm.