2011-12-19 2 views

答えて

21

どうArray#sampleの使用に関する

[1, 2, 3].sample(1) 

サンプル→OBJ
サンプル(ランダム:RNG)→OBJ
サンプル(N)→new_ary
サンプル(n、ランダム:rng)→new_ary
ランダムな要素またはランダムな要素を配列から選択します。配列に重複した要素が既に含まれていない限り、要素が繰り返しないことを保証するために、要素はランダムで一意のインデックスを使用して選択されます。配列が空の場合、最初の形式はnilを返し、2番目の形式は空の配列を返します。
rngが与えられている場合は、乱数ジェネレータとして使用されます。

+0

私はこれに気づいていませんでした...しかし、はい、要素にもっと興味がありました。ありがとう! – Slick23

+0

@JustinM代わりに* this *の回答を受け入れる必要があります。 –

1

それは最初のものであろう(あなたが要素ではなく、インデックスの詳細興味を持っていると仮定)。

icons = %w[asterisk star arrow] 
random = rand(icons.length) 

ドキュメントに記載されているとおり:

引数は整数またはBIGNUMある場合、それはより大きいまたはゼロ引数未満に等しいランダムな整数を返します。アレイは10個の要素(0 .. 9)から構成されている場合

したがって、ランド(10)は、0から9

の数値を返す必要が出典:http://www.ruby-doc.org/core-1.9.3/Random.html

+0

サンプルに気づいていませんでしたが、質問に直接答えるので、これをマークします。これはすてきできれいです。私は他の人をアップヴォートするよ。 – Slick23

+0

組み込みメソッドの再実装はどの質問に対しても正しい答えではありません:) –

+0

大丈夫、大丈夫...未選択:) – Slick23

0
icons = %w[asterisk star arrow] 
puts icons.sample