More info about Problem 9
More info about Benchmark
System Values Ubuntu: Release 12.04 (precise) 32-bit Kernel Linux 3.5.0-45-generic Processor : Intel® Pentium(R) Dual CPU T2330 @ 1.60GHz × 2 Memory: 2.0 GiB
#!/usr/bin/ruby
require 'benchmark'
class PythagoreanTriplet
def square val
val * val
end
def add_square(a,b)
square(a) + square(b)
end
def triplet(a,b,c)
square(c) == add_square(a,b) ? true : false
end
def triplet_addition(a,b,c)
a+b+c
end
def get_product_abc
for a in 0..500
for b in 0..500
for c in 0..500
if a < b && b < c
triplet(a,b,c) ? find = triplet_addition(a,b,c) : find = nil
printf '%d - %d - %d ', a,b,c if find == 1000
break if find == 1000
end
end
break if find == 1000
end
break if find == 1000
end
end
end
pt = PythagoreanTriplet.new
puts Benchmark.measure { pt.get_product_abc }
Results
No break statement
200 - 375 - 425 42.950000 0.170000 43.120000 ( 43.553589) <- Time
Break statement
200 - 375 - 425 25.200000 0.040000 25.240000 ( 25.396476) <- Time
No hay comentarios:
Publicar un comentario