Ruby数组阵列的所有可能排列(一个衬垫?)

前端之家收集整理的这篇文章主要介绍了Ruby数组阵列的所有可能排列(一个衬垫?)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在此之前曾经问过类似的问题,但是它们并不完全是我需要的,我似乎无法通过修改/修改这些方法来达成我的解决方案.

在任何情况下,我有一个数组,如下所示:

b= [["1"],["2"],["3"],["4"],["5"],["6"]]

(如果它更容易到达解,b也可以是一维数组,如下所示:[“1”,“2”,“3”,“4”,“5”,“6”].任何一种类型的输入都可以满足我的需要.)

我想生成以下内容

[["123456"],["213456"],["312456"],...]

其中输出数组中的每个数组都是六个数字的唯一排列.我也会把它作为一个单一的数组(例如[“123456”,“213456”,…]).输出的顺序不是特别重要,只要每个条目是唯一的,并且没有数字在字符串中重复(例如,“112345”不被允许).所有6个数字也必须在每个条目中使用,所以我对增量输出也不感兴趣,如“123”.

这听起来像这样,这不是一个家庭作业的问题.我可以为了这件事而得到我需要的输出.我只是觉得有一个更好,更优雅的解决方案.

解决方法

Array#permutation
permutations = (1..6).to_a.permutation.map(&:join)
# ["123456","123465","123546",...,"654312","654321"]

猜你在找的Ruby相关文章