Змея / Говнокод #24676 Ссылка на оригинал

0

  1. 1
Зачем нужен "z == int(str(z)[::-1])", если есть "int(str(z)[:len(str(z))//2]) == int(str(z)[int((len(str(z))+1)//2):][::-1])"?

Запостил: shite shite, (Updated )

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

  • Встречный вопрос: нахуй в "Java" указывать букву "f" после каждого "float"-а? Если это требуется для отличия числа от типа "double", могли бы вырезать к хуям убогий "float".
    Ответить
  • def timeit(expr, times = 1000, count = 10):
        from time import time
        t = 0
        for i in range(count):
            ti = time()
            for i in range(times):
                eval(expr)
            t += time() - ti
        return t / count
    
    def f(z):
        return z == int(str(z)[::-1])
    
    def g(z):
        return str(z)[:len(str(z))//2] == str(z)[(len(str(z))+1)//2:][::-1]
    
    def h(z):
        z = str(z)
        return all(i == j for i, j in zip(z[:(len(z) + 1) // 2], reversed(z[len(z) // 2:])))
    
    def u(z):
        z = str(z)
        for i in range((len(z) + 1) // 2):
            if z[i] != z[-(i + 1)]:
                return False
        return True
        
    from math import factorial
    
    tests = (12321, 43211234, 12345, 43212234, 25315633721561462352552125525326416512733651352, factorial(666))
    
    for i in tests:
        print("""
    {0}:
         f -- {1}
         g -- {2}
         h -- {3}
         u -- {4}
    """.format(
        repr(i), timeit('f(i)'),
                 timeit('g(i)'),
                 timeit('h(i)'),
                 timeit('u(i)')
        ))
    Ответить
    • result:
      12321:
           f -- 0.009652328491210938
           g -- 0.010423755645751953
           h -- 0.011293578147888183
           u -- 0.00968465805053711
      
      
      43211234:
           f -- 0.009140491485595703
           g -- 0.010031294822692872
           h -- 0.01293044090270996
           u -- 0.009594273567199708
      
      
      12345:
           f -- 0.009352421760559082
           g -- 0.010291719436645507
           h -- 0.011065793037414551
           u -- 0.009661626815795899
      
      
      43212234:
           f -- 0.00979471206665039
           g -- 0.010333037376403809
           h -- 0.011046528816223145
           u -- 0.00985887050628662
      Ответить
      • 25315633721561462352552125525326416512733651352:
             f -- 0.009523916244506835
             g -- 0.009977126121520996
             h -- 0.010948848724365235
             u -- 0.01002519130706787
        
        
        1010632056840781493390822708129876451757582398324145411340420807357413802103697022989202806801491012040989802203557527039339704057130729302834542423840165856428740661530297972410682828699397176884342513509493787480774903493389255262878341761883261899426484944657161693131380311117619573051526423320389641805410816067607893067483259816815364609828668662748110385603657973284604842078094141556427708745345100598829488472505949071967727270911965060885209294340665506480226426083357901503097781140832497013738079112777615719116203317542199999489227144752667085796752482688850461263732284539176142365823973696764537603278769322286708855475069835681643710846140569769330065775414413083501043659572299454446517242824002140555140464296291001901438414675730552964914569269734038500764140551143642836128613304734147348086095123859660926788460671181469216252213374650499557831741950594827147225699896414088694251261045196672567495532228826719381606116974003112642111561332573503212960729711781993903877416394381718464765527575014252129040283236963922624344456975024058167368431809068544577258472983979437818072648213608650098749369761056961203791265363665664696802245199962040041544438210327210476982203348458596093079296569561267409473914124132102055811493736199668788534872321705360511305248710796441479213354542583576076596250213454667968837996023273163069094700429467106663925419581193136339860545658673623955231932399404809404108767232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:
             f -- 0.009870290756225586
             g -- 0.010963368415832519
             h -- 0.011407780647277831
             u -- 0.009269070625305176
        Вывод: не выёбывайся.
        Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8