Hello, I just thought of comparing the speeds of two methods to double a number in python but didn't got a precise result. Can anyone help me improving this testing?
Here's the program:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25  import time,random
mainscores=[[],[]]
for digits in range(15):
print('Calculations with %s digit numbers are going on...' %(digits+1))
scoreplus=0
scoremultiply=0
for m in range(100):
timebyaplusa=0
timebyatimestwo=0
while timebyaplusa==timebyatimestwo:
a=random.randint((10**digits),(10**(digits+1))1)
starttime=time.time()
b1=a+a
timebyaplusa+=time.time()starttime
starttime=time.time()
b2=a*2
timebyatimestwo+=time.time()starttime
if b1!=b2:
print('Error')
if timebyaplusa>timebyatimestwo:
scoremultiply+=1
else:
scoreplus+=1
mainscores[0].append(scoreplus)
mainscores[1].append(scoremultiply)

...and here's the output:
Will it even show any difference?
Comments
Sort by:
Top NewestDon't know anything about Python, but my guess is that only 1 trial per an \( n \) digit number won't tell you much, since both methods have comparable times and the random factors obfuscate any differences in the short term.
If you want to see a difference, try more trials (1000?) and average them out instead of just one trial. – Siddhartha Srivastava · 2 years, 3 months ago
Log in to reply
– Pranjal Jain · 2 years, 3 months ago
Good idea! Let me try that out.Log in to reply
while with 1m calculations, the results were:
Seems like '+' wins in case of bigger numbers. – Pranjal Jain · 2 years, 3 months ago
Log in to reply