Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 限制组合Ruby的试验次数_Ruby On Rails_Ruby_Combinations - Fatal编程技术网

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
呼叫的位置以前是错误的,我不应该在喝咖啡之前在此发布……没问题。我已经弄明白了。谢谢你提醒我关于懒惰的事