2017-04-21 13 views
0

置換(反復)せずに範囲内にk個の乱数を生成する関数がありますか?ルビーの置換を伴わないランダムサンプリング

>>> import random 
>>> random.sample(range(1, 100), 3) 
[77, 52, 45] 
+2

FWIW:[Array :: sample](https://ruby-doc.org/core-2.4.0/Array.html#method-i-sample)があります。 – orde

+0

@ordeこれは正しいです。これを本格的な答えにしてください。 –

答えて

2

あなたは、範囲を作成し、配列の範囲を変換した後、サンプル数を指定する引数を取ることができ、Array::sampleを呼び出すことができます。

(1..100).to_a.sample(3) 
1

以下のように

Pythonでrandom.sample機能のようなものあなたはこれを使用することができます:

  • (1..100).to_aが可能で、配列を作成します。

    (1..100).to_a.shuffle[0..2] #=> [13, 36, 88] 
    

    値。

  • .shuffleはランダムに配列をソートします。
  • [0..2]グラブシャッフルされた配列の最初の3要素。
関連する問題