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?
importtime,randommainscores=[[],[]]fordigitsinrange(15):print('Calculations with %s digit numbers are going on...'%(digits+1))scoreplus=0scoremultiply=0forminrange(100):timebyaplusa=0timebyatimestwo=0whiletimebyaplusa==timebyatimestwo:a=random.randint((10**digits),(10**(digits+1))-1)starttime=time.time()b1=a+atimebyaplusa+=time.time()-starttimestarttime=time.time()b2=a*2timebyatimestwo+=time.time()-starttimeifb1!=b2:print('Error')iftimebyaplusa>timebyatimestwo:scoremultiply+=1else:scoreplus+=1mainscores[0].append(scoreplus)mainscores[1].append(scoremultiply)
This discussion board is a place to discuss our Daily Challenges and the math and science
related to those challenges. Explanations are more than just a solution — they should
explain the steps and thinking strategies that you used to obtain the solution. Comments
should further the discussion of math and science.
When posting on Brilliant:
Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.
Markdown
Appears as
*italics* or _italics_
italics
**bold** or __bold__
bold
- bulleted - list
bulleted
list
1. numbered 2. list
numbered
list
Note: you must add a full line of space before and after lists for them to show up correctly
# I indented these lines
# 4 spaces, and now they show
# up as a code block.
print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.
print "hello world"
Math
Appears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3
2×3
2^{34}
234
a_{i-1}
ai−1
\frac{2}{3}
32
\sqrt{2}
2
\sum_{i=1}^3
∑i=13
\sin \theta
sinθ
\boxed{123}
123
Comments
Don'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.
Easy Math Editor
This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.
When posting on Brilliant:
*italics*
or_italics_
**bold**
or__bold__
paragraph 1
paragraph 2
[example link](https://brilliant.org)
> This is a quote
\(
...\)
or\[
...\]
to ensure proper formatting.2 \times 3
2^{34}
a_{i-1}
\frac{2}{3}
\sqrt{2}
\sum_{i=1}^3
\sin \theta
\boxed{123}
Comments
Don'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.
Log in to reply
Good idea! Let me try that out.
Log in to reply
Well, for 10k calculations, for n digit numbers, n∈{1,2,3,⋯,20}, the results were as follows:
while with 1m calculations, the results were:
Seems like '+' wins in case of bigger numbers.