Ruby on rails 限制组合Ruby的试验次数
以下代码将Ruby on rails 限制组合Ruby的试验次数,ruby-on-rails,ruby,combinations,Ruby On Rails,Ruby,Combinations,以下代码将5C4(5组合4)的所有结果计算为字符串: a = ['1', '2', '3', '4', '5'] result_array = a.combination(4).map(&:join).to_a 是否有一种方法可以用来限制组合试验的数量,类似于Python中的itertools模块?尝试以下方法: result_array = a.combination(4).lazy.map(&:join).take(2).to_a lazy将确保您只计算take所需的值。
5C4
(5组合4)的所有结果计算为字符串:
a = ['1', '2', '3', '4', '5']
result_array = a.combination(4).map(&:join).to_a
是否有一种方法可以用来限制组合试验的数量,类似于Python中的itertools
模块?尝试以下方法:
result_array = a.combination(4).lazy.map(&:join).take(2).to_a
lazy
将确保您只计算take
所需的值。请尝试以下操作:
result_array = a.combination(4).lazy.map(&:join).take(2).to_a
lazy
将确保您只计算take
所需的值,如果您希望获取第一个这么多的组合,是否有理由构建一个数组,而不是简单地让枚举器将第一个n
元素传递给另一个枚举器或一个块?实际上我正在做的是在不同的4个组之间进行组合,所以如果我在枚举器中使用调用枚举器,我认为这会导致很多重叠@Cary Swoveland如果您的意思是希望通过从4个数组中的每个数组中绘制一个元素来生成第一个如此多的4元组,那么这将是一个不同的问题,尽管这是一个有趣的问题。如果是的话,请考虑发布另一个问题。如果你希望第一个这么多的组合,你有理由构造一个数组,而不是简单地让枚举器将第一个<代码> n>代码>元素传递给另一个枚举器或块?我所做的实际上是在4个不同的组之间进行组合,所以,如果我在枚举器中使用调用枚举器,我认为这会导致很多重叠@Cary Swoveland如果您的意思是希望通过从4个数组中的每个数组中绘制一个元素来生成第一个如此多的4元组,那么这将是一个不同的问题,尽管这是一个有趣的问题。如果是这样,请考虑发布另一个问题。@ JH SHIN请注意,代码<懒> /Cube >的位置以前是错误的,我不应该在咖啡之前张贴这里……我已经弄明白了。谢谢你提醒我关于lazy
@jh shin的事。请注意,lazy
呼叫的位置以前是错误的,我不应该在喝咖啡之前在此发布……没问题。我已经弄明白了。谢谢你提醒我关于懒惰的事