在Ruby中,我有三个嵌套循环:
array.each do |a|
array.each do |b|
array.each do |c|
puts a * b * c
end
end
end
如果嵌套循环的数量可以增加到5-10次并进行更多的迭代,如何优化此代码?
例:
array.each do |a|
array.each do |b|
array.each do |c|
array.each do |d|
array.each do |e|
array.each do |f|
puts a * b * c * d * e * f
end
end
end
end
end
end
您可以执行以下操作:
array.repeated_combination(array.size).each do |combination|
puts combination.reduce(:*)
end
Array#repeated_combination
返回产生所有可能组合的枚举器。
由于此方法会在打印之前生成所有组合,因此根据阵列的大小,可能需要花费一些时间。请记住,可能的组合数量增加相当快:O(nⁿ)
有n
是数组中元素的个数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句