разница между скоростью OS 2 кодов (простых чисел) в ppython - PullRequest
0 голосов
/ 26 октября 2019

Я запустил два кода одной и той же цели, чтобы проверить, является ли число простым или нет, и я хочу знать, почему один код быстрее другого.

1) Код с исключенными случаями с помощью if, elif ииначе:

from time import time
def isprime(n):
    if n<=1:
       return False
    elif n==2:
       return True
    elif n>2 and n%2==0:
       return False        
    else:
       x=int(n**0.5)
       for i in range(3,x+1,2):
         if n%i==0:
            return False
       return True
t0=time()
for i in range(1,1000):
    print(isprime(i))
t1=time()
print("time used for solving this:",t1-t0)

2) Код, который выполняется больше для условий k = цикла:

from time import time
def isprime(n):
     if n<=1:
         return False
     else:
          for i in range(2,(n//2)+1):
              if n%i==0:
                  return False
          return True
t0=time()
for i in range(1,1000):
      print(isprime(i))
t1=time()
print("time used for solving this:",t1-t0)

У меня есть два кода (как показано выше), оба проверяют на простое число, но вво-первых, я делаю больше для цикла, чтобы проверить условие, а во-вторых, я устраняю запросы, используя if, elif и др.

Однако код с циклом more for имеет лучшую производительность. Я ожидал, что первый будет быстрее, а второй - быстрее.

Время, затрачиваемое первым для решения цикла for, равно 8.115293025970459, а время секунда - 6.84753155708313

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...