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

    −3

    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, 28 Августа 2018

    Комментарии (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
          Вывод: не выёбывайся.
          Ответить
          • 1. Это был саркастический вопрос.
            2. Простыня (1613) чисел из-за факториала 666.
            Ответить

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