2017-08-30 17 views
0

における試行回数を制限するコード次の文字列として5C4(5組合せ4)の全ての結果を算出します、Pythonのitertoolsモジュールと同様ですか? takeにより、必要に応じて、あなただけのように多くの値を計算することが保証されます組み合わせルビー

result_array = a.combination(4).lazy.map(&:join).take(2).to_a 

lazy

+0

最初の数多くの組み合わせを取りたい場合は、単に列挙子が最初の 'n'要素を別の列挙子またはブロックに渡すのではなく、配列を作成する必要がありますか? –

+0

私がやっていることは、実際には異なる4つのグループ間の組み合わせを作ることです。そのため、列挙子で呼び出し元の列挙子を使用すると、非常に多くのオーバーラップが発生すると思いました。 @Cary Swoveland –

+0

4つの配列のそれぞれから1つの要素を描画することによって得られた最初の非常に多くの4つのタプルを生成したいという場合、それは別の問題ですが、興味深いものです。もしそうなら、別の質問を投稿することを検討してください。 –

答えて

4

はこれを試してみてください。

+0

@ jh-shin「レイジー」コールの場所が以前は間違っていたことに注意してください。私はコーヒーの前にここに投稿すべきではありません。 –

+0

probはありません。私はそれを理解した。 'レイジー'について私に警告してくれてありがとう –