lkr #2277(2007/08/17 11:58 GMT) [ Ruby ] Rating0/0=0.00
再帰的に
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
def cross_product(*args) raise ArgumentError if args.size <= 1 if args.size == 2 r = [] args.first.each{ |v| args.last.each{ |vv| r << [v, vv] } } return r end cross_product(args.first, cross_product(*args[1..-1])).map{ |rr| [rr.first] + rr.last } end def cross_product_wrap(*args) args.map!{ |arg| case when arg.kind_of?(String) arg.scan(/./) when arg.kind_of?(Array) arg else [arg] end } cross_product(*args) end
Rating0/0=0.00-0+
[ reply ]
lkr
#2277()
[
Ruby
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]