SnilsGenerator

Страховой номер индивидуального лицевого счёта (СНИЛС).

Формат СНИЛС: «ХХХ-ХХХ-ХХХ YY»,

где X, Y — цифры, причём первые девять цифр 'X' — это любые цифры, а последние две 'Y' фактически являются контрольной суммой.

Алгоритм формирования контрольного числа СНИЛС таков:

  • Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца, то есть, справа)

  • Полученные произведения суммируются

  • Получить остаток от деления на 101

  • Если получилось 100, контрольное число равно 0

Например:

СНИЛС 112-233-445 95. Проверяем правильность контрольного числа:

  • цифры номера 1 1 2 2 3 3 4 4 5

  • номер позиции 9 8 7 6 5 4 3 2 1

  • Сумма = 1 ⋅ 9 + 1 ⋅ 8 + 2 ⋅ 7 + 2 ⋅ 6 + 3 ⋅ 5 + 3 ⋅ 4 + 4 ⋅ 3 + 4 ⋅ 2 + 5 ⋅ 1 = 95

  • Контрольная сумма = 95 mod 101 = 95. Полученное значение совпадает с представленной контрольнной суммой

See Also: СНИЛС

Author

Dmitry_Emelyanenko

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
open override val uniqueDistance: Int = 130

Количество вызовов, при котором с вероятностью 95% будет уникальное значение.

Functions

Link copied to clipboard
open override fun generate(): GeneratorResult<String>

Генерация данных.