2011-09-29 11 views
10

文字列の配列を渡したときにxが合計x個の配列要素のランダムなリストを返す、きれいなメソッドを書くのに苦労しています。配列からx個のランダムな要素を取得する

def getrandomarrayelements(thearray, howmany) 
    return [something] 
end 

はい、私は作品ながら、良いではありません、私の既存のコードを、提出しなければならない、それは8行の長さだと私はそれが1で行うことができます感を持っています!ルビー1.9で

+1

。そのための先行技術はたくさんありますが、それはありませんか? –

答えて

27

irb(main):001:0> [1,2,3,4,5].sample(3) 
=> [2, 4, 5] 
irb(main):002:0> [1,2,3,4,5].sample(3) 
=> [2, 5, 3] 

と、このようなルビー1.8何かのため:シャッフルとの契約だ

def sample(arr, n) 
    arr.shuffle[0...n] 
end 

irb(main):009:0> sample([1,2,3,4,5], 3) 
=> [5, 1, 3] 
irb(main):010:0> sample([1,2,3,4,5], 3) 
=> [3, 4, 2] 
+0

1.9バージョンでは、ユニークな要素を返すかどうか、私の質問で言及を忘れた? – creativetechnologist

+0

あなたの配列にuniq要素がある場合はuniqになります。 –

関連する問題