创建所有可能重复的字母组合

时间:2017-11-07 23:50:11

标签: arrays ruby

我想创建一个可能重复的n元素组合的数组,这些元素来自字母AF。每个组合应该是一个数组。例如,对于n = 4,结果应为:

[[A, A, A, A], [A, A, A, B], [A, A, A, C], ..., [F, F, F, F]]

元素之间的顺序没有显着性([A, A, E, E][E, E, A, A]会相同)。

我尝试过:

('A'..'F').to_a.combination(4).to_a

但这不起作用。我想任务更复杂。

1 个答案:

答案 0 :(得分:5)

尝试repeated_combination

  

(' A' ..' F&#39)。to_a.repeated_combination(4).to_a

示例:

 > ('A'..'C').to_a.repeated_combination(4).to_a
 => [["A", "A", "A", "A"], ["A", "A", "A", "B"], ["A", "A", "A", "C"], ["A", "A", "B", "B"], ["A", "A", "B", "C"], ["A", "A", "C", "C"], ["A", "B", "B", "B"], ["A", "B", "B", "C"], ["A", "B", "C", "C"], ["A", "C", "C", "C"], ["B", "B", "B", "B"], ["B", "B", "B", "C"], ["B", "B", "C", "C"], ["B", "C", "C", "C"], ["C", "C", "C", "C"]]