获得更大阵列的所有可能排列

时间:2016-02-03 00:49:58

标签: arrays ruby permutation

我正在尝试获取字符串数组["-", "+", "*"]并找出给定大小的所有组合。这可以通过执行以下操作来实现:

arr = ["-", "+", "*"]
perms = arr.permutation(2).to_a
# => [["-", "+"], ["-", "*"], ["+", "-"], ["+", "*"], ["*", "-"], ["*", "+"]]

但是,我想获得比给定数组更大的数组的结果。例如,arr.permutations(4).to_arr。这可能吗?

2 个答案:

答案 0 :(得分:4)

是的,这是可能的。

perms = arr.repeated_permutation(4).to_a

答案 1 :(得分:0)

不,不是通过任何内置的库或统计方法。

组合和置换方法实现标准概率论函数。也就是说,"一次采取B的事情。"您无法使用这些标准方法创建组合或排列以获取更多"事物"比你实际拥有的还要多。