Тестирование метода поиска факториала числа в Ruby
Порой требуется найти факториал числа в ruby. Встроенного метода нет, поэтому добавим в класс Integer свой. Вот реализации поиска факториала найденные в сети, какой из них лучше? После проведения теста в ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-darwin12.2.0] оказалось что третий ( обозначен как inject_factorial) в ruby 1.9.2 результат примерно такой же. require "benchmark" class Integer def factorial_recursive self <= 1 ? 1 : self * (self - 1).factorial end def factorial_iterative f = 1; for i in 1..self; f *= i; end; f end def inject_factorial self.downto(1).inject(:*) end alias :factorial :inject_factorial end Benchmark.bm(70) do |x| x.report("factorial_recursive:") { (1..120).each { |i| i.factorial_recursive } } x.report("factorial_iterative:") { (1..120).each { |i| i.factorial_iterative }} x.report("inject_factor...