On Jul 15, 2010, at 11:30 , Phrogz wrote:

> C:\>type tmp.rb
> count = 0
> combo = nil
> (1..166).to_a.combination(5).each do |c|
>  count+= 1; combo = c
> end
> p count, combo
> 
> C:\>ruby -v tmp.rb
> ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]
> 129462338
> [5, 34, 54, 73, 81]
> 
> Yeah...no one could possibly need to run more than 129 million
> combinations, and...I'm getting kinda tired, so...yeah, let's just
> stop here.
> 
> WTF?

wfm:

#!/usr/bin/ruby -w

class Integer
  def f!
    (1..self).inject { |prod, n| prod * n }
  end
end

expected = ((166.f!)/(5.f! * 161.f!).to_f).to_i # => 988455798

count = 0
combo = nil

(1..166).to_a.combination(5).each do |c|
 count += 1; combo = c
end

p count, combo
p count == expected

# outputs:
#
# ~/.multiruby/install/1.9.1-p129/bin/ruby  wtf.rb
# 988455798
# [162, 163, 164, 165, 166]
# true