"Escrever código não é a mesma coisa que programar, do mesmo jeito que jogar ingredientes numa panela não é culinária". Hoje em dia parece que temos uma montanha de opções, guerras religiosas, opiniões de gurus, astrologia e horóscopo para definir tecnologias. Está errado. É hora de voltarmos às raízes: a "Ciência" da Computação.
27. require 'benchmark'
people = 10_000
Benchmark.bm do |x|
x.report do
count = 0
people.times do |person_a|
people.times do |person_b|
count += 1 if person_b > person_a
end
end
puts count
end
x.report do
puts (people * (people - 1) / 2)
end
end
28. require 'benchmark'
people = 10_000
Benchmark.bm do |x|
x.report do
count = 0
people.times do |person_a|
people.times do |person_b|
count += 1 if person_b > person_a
end
end
puts count
end
x.report do
puts (people * (people - 1) / 2)
end
end
29. require 'benchmark'
people = 10_000
Benchmark.bm do |x|
x.report do
count = 0
people.times do |person_a|
people.times do |person_b|
count += 1 if person_b > person_a
end
end
puts count
end
x.report do
puts (people * (people - 1) / 2)
end
end
30. require 'benchmark'
people = 10_000
Benchmark.bm do |x|
x.report do
count = 0
people.times do |person_a|
people.times do |person_b|
count += 1 if person_b > person_a
end
end
puts count
end
x.report do
puts (people * (people - 1) / 2)
end
end
31. user system total real
190
0.000000 0.000000 0.000000 ( 0.000043)
190
0.000000 0.000000 0.000000 ( 0.000008)
32. user system total real
190
0.000000 0.000000 0.000000 ( 0.000043)
190
0.000000 0.000000 0.000000 ( 0.000008)
33. user system total real
190
0.000000 0.000000 0.000000 ( 0.000043)
190
0.000000 0.000000 0.000000 ( 0.000008)
34. user system total real
49995000
6.310000 0.000000 6.310000 ( 6.354882)
49995000
0.000000 0.000000 0.000000 ( 0.000011)
35. user system total real
49995000
6.310000 0.000000 6.310000 ( 6.354882)
49995000
0.000000 0.000000 0.000000 ( 0.000011)
36. user system total real
49995000
6.310000 0.000000 6.310000 ( 6.354882)
49995000
0.000000 0.000000 0.000000 ( 0.000011)
65. require 'prime'
gerador_de_primos = Fiber.new do
numero = 1
loop do
Fiber.yield(numero) if numero.prime?
numero += 1
end
end
gerador_de_primos.resume
=> 2
66. require 'prime'
gerador_de_primos = Fiber.new do
numero = 1
loop do
Fiber.yield(numero) if numero.prime?
numero += 1
end
end
gerador_de_primos.resume
=> 2
gerador_de_primos.resume
=> 3
67. require 'prime'
gerador_de_primos = Fiber.new do
numero = 1
loop do
Fiber.yield(numero) if numero.prime?
numero += 1
end
end
gerador_de_primos.resume
=> 2
gerador_de_primos.resume
=> 3
gerador_de_primos.resume
=> 5