我想创建一个可能重复的n
元素组合的数组,这些元素来自字母A
到F
。每个组合应该是一个数组。例如,对于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
但这不起作用。我想任务更复杂。
答案 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"]]