Skip to content

Instantly share code, notes, and snippets.

@kopylovvlad
Created April 17, 2016 13:57
Show Gist options
  • Save kopylovvlad/774a0d06f85de8537f3ffdc5560ee7ce to your computer and use it in GitHub Desktop.
Save kopylovvlad/774a0d06f85de8537f3ffdc5560ee7ce to your computer and use it in GitHub Desktop.
#сумма последовательности через сложение
def summ(z)
sum = 0
for num in 1..z
sum += num
end
sum
end
#сумма последовательности через площадь треугольника
def sum_triangle(z)
( z*(z+1) )/2
end
=begin
#тест что формулы идентичны
for num in 1..10000
if summ(num)!=sum_triangle(num)
puts "false if num = #{num}"
end
end
=end
=begin
пусть мы подсчитаем подряд суммы последовательней c максимальным значением от 2 до 100 000
сумму последовательностей от 1 до 2
сумму последовательностей от 1 до 3
сумму последовательностей от 1 до 4
...
сумму последовательностей от 1 до 100 0000
=end
limit = 100000
begin_time = Time.now
for num in 2..limit
summ(num)
end
puts Time.now - begin_time
begin_time = Time.now
for num in 2..limit
sum_triangle(num)
end
puts Time.now - begin_time
#370 секунд
#0.02 секунды
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment