2011-06-21 9 views
1

私は可変長nのオブジェクトの配列を持っています。私のデータベースのレコード数で定義されます。変数の長さの配列から可変長の配列の順序指定されたサブセットを取得する方法は?

I mがIに渡す任意の整数とすることができる指定された長さmの配列のサブセット(順にオブジェクトを維持し、常に、インデックス0から始まる)をつかむために機能を必要としている。

例えばもし、N = 10及びM = 4

アレイFOO = [0、1、2、3、4、5、6、7、8、9]

部分集合A = [0、1、2、 3] 部分集合B = [4、5、6、7] サブセットC = [8,9]を

、Iは、プログラム「と言う私の長さmのi番目のサブセットを与えることができるようにする必要配列から、長さnの配列が与えられているとします。前の例を使用して:「私にfooから長さ4の第2のサブセットを渡す」=>は位置[4,5,6,7]のアイテムを返します。

私はそれが理に適ったと思います。ルビーの解決策をご援助いただければ幸いです!どうも!

+0

だけ明確化のために:メソッドのシグネチャは、 ''大体デフバー(subset_index、subset_length)のように見えるのでしょうか? –

答えて

3
foo.each_slice(subset_length).to_a[subset_index] 

foo.each_slice(4).to_a[2]は "fooから長さ4の第2サブセット"を返します。

+0

まさに私が必要なものです。どうもありがとう! – istan

2

あなたはEnumerable#each_sliceを使用することができます。

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].each_slice(4).to_a 
#=> [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]] 
+1

この言語は私を驚かせることは決してありません。しかし、[この質問から]引用符(http://stackoverflow.com/questions/2293734/why-doesnt-each-slice-work)は、このソリューションのRuby 1.8.6で「列挙子を必要とする」必要があると言います働く1.8.7と1.9には問題はありません。 – Sorrow

+0

ありがとうございます! JacobMはあなたの直前に入ったので、彼は小切手を手に入れた – istan

関連する問題