全排列

全排列

以前用C写很长的, 现在好象比较简单

def pailie(list)
    return [[list[1]],[list[0]]]if (2 == list.size)
    newlist = []
    list.each() {|i| pailie(list - ).each {|j| newlist.push + j}}
    newlist
end

puts pailie([1,2,3,4]).inspect


[Copy to clipboard] [ - ]
括号里是 list - 吧,可是即使加上了还是不对,等解。。。。
。。。。。。。。。发个帖真费劲。。。。。括号里是 list - 左中括号 i 右中括号。。。。。
“newlist.push + j ” 这个不明白,而且下面一行应该是“return newlist” 吗?
该不是想实现 数组的逆排吧?

一个 reverse 或者 reverse! 不就搞定了???
完整的代码是这样么?

[Copy to clipboard] [ - ]
看明白了,是排列组合,稍微改动了一下,看起来舒服点

[Copy to clipboard] [ - ]
很好,佩服楼上。。。。加紧学习。。。。。也谢谢楼主和管理员
。。。劳驾再问下,p pailie([1,2,3,4]) 中开始的那个“p”是什么啊?