我需要填充一个数组,但不能直接计算和拆分数字。
我需要生成以下内容:
[[a,a,a,a], [a,a,a,b], [a,a,a,c]..... [f,f,f,d], [f,f,f,e], [f,f,f,f]]我正努力去理解它。我意识到它应该使用递归逻辑,但我不知道如何实际构建该方法。
发布于 2015-06-29 03:21:53
我会这样做:
('a'..'f').to_a.repeated_permutation(4).to_a
#=> returns 1296 different combination from ['a','a','a','a'] to ['f','f','f','f']发布于 2015-06-29 04:56:50
这应该能行。
(0...6**4).map do |i|
# Get as base 6
s = i.to_s(6).rjust(4,'0')
# Convert numbers to letters
s.gsub(/[012345]/,'0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd', '4' => 'e', '5' => 'f')
end发布于 2015-06-29 05:27:17
另一种办法是:
('aaaa'..'ffff').map(&:chars)https://stackoverflow.com/questions/31107236
复制相似问题