自己实现了一个Ruby的组合算法,写到一半,发现Ruby的Array类支持。
- Perl code
class Array def make_array arr = [] self.each{|i| arr.insert -1, [i]} arr end def make_array2(e) self.each{|i| i.insert -1, e} endenddef combine(array, size) return [ array ] if array.size == size return array.make_array if size == 1 last = array[-1] left = array - [ last ] a = combine(left, size - 1).make_array2(last) b = combine(left, size) return a + bendp combine(%w{ a b c d e}, 4)p combine(%w{ a b c d e}, 3)p combine(%w{ a b c d e}, 2)p combine(%w{ a b c d e}, 1)
不过还是希望高手提提意见,关于效率,关于风格什么的。任何建议都OK。
我自己给我的建议是,多看文档,少走弯路~。
[解决办法]
过来看看,向八神学习,呵呵!
[解决办法]
不懂ruby的飘过