加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

优化Ruby中的嵌套循环

发布时间:2020-12-17 03:41:32 所属栏目:百科 来源:网络整理
导读:在 Ruby中我有三个嵌套循环: array.each do |a| array.each do |b| array.each do |c| puts a * b * c end endend 如果嵌套循环的数量可以增加到5-10次并且迭代次数增加,我该如何优化此代码? 例: array.each do |a| array.each do |b| array.each do |c|
在 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是数组中元素的数量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读