我想创建一个可能重复的n元素组合的数组,从字母A到F.每个组合应该是一个数组.n例如,对于= 4,结果应为:
[[A, A, A, A], [A, A, A, B], [A, A, A, C], ..., [F, F, F, F]]
Run Code Online (Sandbox Code Playgroud)
元素之间的顺序没有重要性([A, A, E, E]并且[E, E, A, A]会相同).
我尝试过:
('A'..'F').to_a.combination(4).to_a
Run Code Online (Sandbox Code Playgroud)
但那没用.我猜这个任务比较复杂.
试试repeated_combination:
( 'A' .. 'F').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"]]
Run Code Online (Sandbox Code Playgroud)