1. Python / Говнокод #16250

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    import random
    
    while 0<1:
        inn_d=str(random.randint(100000000,999999999))
        a=int(inn_d[:1])*2
        b=int(inn_d[1:2])*4
        c=int(inn_d[2:3])*10
        d=int(inn_d[3:4])*3
        e=int(inn_d[4:5])*5
        f=int(inn_d[5:6])*9
        g=int(inn_d[6:7])*4
        l=int(inn_d[7:8])*6
        m=int(inn_d[8:9])*8
        x=a+b+c+d+e+f+g+l+m
        y=x%11
        if y%11==10:
            y=0
        print str(inn_d)+str(y)

    Такой вот генератор ИННов

    Запостил: pl7ofit, 28 Июня 2014

    Комментарии (11) RSS

    • while 0<1:

      комментарии излишни
      Ответить
    • Бесмысленно и беспощадно
      Ответить
    • показать все, что скрытоВычисление чек-суммы особенно порадовало. Нет бы просто взять mod 10.. Ну и интересно почему такие множители.
      Ответить
      • > Нет бы просто взять mod 10
        > Ну и интересно почему такие множители.
        Потому что в алгоритме проверки ИНН так написано. Автор не сам это придумал.

        Коэффициенты разные ради страховки от попутанных цифр. mod 11, емнип, для правильного распределения - чтобы все к-ты были с ним взаимнопросты.
        Ответить
        • > mod 11, емнип, для правильного распределения - чтобы все к-ты были с ним взаимнопросты.
          Иначе некоторые разряды будут очень хуево влиять на контрольный. Например, тот разряд, который умножен на 5, будет добавлять к сумме либо 0 либо 5. Что совсем не айс. С mod 11 этой проблемы нет.
          Ответить
    • Опять лабу притащили?
      Ответить

    Добавить комментарий