Ruby:数组上的置换

ron*_*y36 -1 ruby ruby-1.8.7

说,我有一个数组:

a = [1,2]
Run Code Online (Sandbox Code Playgroud)

n = 3
Run Code Online (Sandbox Code Playgroud)

我想要这样的输出:

[[1, 1, 1], [1, 1, 2], [1, 2, 1], [1, 2, 2], [2, 1, 1], [2, 1, 2], [2, 2, 1], [2, 2, 2]]
Run Code Online (Sandbox Code Playgroud)

这是n来自数组的元素长度的所有可能组合a.

最重要的是我使用的是ruby 1.8.7

saw*_*awa 5

a.repeated_combination(n).to_a
Run Code Online (Sandbox Code Playgroud)

  • @ rony36 [backports gem](https://github.com/marcandre/backports)提供了[`repeated_combination`]的实现(https://github.com/marcandre/backports/blob/master/lib/backports/ 1.9.2 /阵列/ repeated_combination.rb) (2认同)