12

乱数 (10⁵ の数字) を含む大きな配列 (またはリスト) を生成する必要があります。私はそのようにしようとしていました:

vet = random.sample(range(10),100000)

しかし、実行しようとすると:

vet = random.sample(range(10),10000)

ファイル "/usr/lib/python2.7/random.py"、320 行目、サンプルで ValueError("サンプルが母集団よりも大きい") ValueError: サンプルが母集団よりも大きい

解決策はありますか?

tkns

4

3 に答える 3

30

あなたが欲しいのは

[random.random() for _ in xrange(100000)]

random モジュールのドキュメントから:

random.sample(population, k) 母集団シーケン​​スから選択された一意の要素の k 長さのリストを返します。置換なしのランダム サンプリングに使用されます。

したがって、呼び出すときにrandom.sample(range(10), 100000)、長さ 10 のシーケンスで 100000 個の一意の要素を抽出しようとしていますが、これは明らかに機能しません。

ご了承ください

  • random.random()[0 ; の間の浮動小数点値を返します。1)
  • random.randrange([start], stop[, step])シーケンスからランダムな要素を返しますrange([start], stop[, step])
  • random.randint(a, b)[a ; の整数値を返します。b]
  • を使用するrandom.sample場合、等式len(population) >= kが成り立たなければなりません
于 2012-08-28T21:41:22.307 に答える
11

私はあなたがこのようなものを求めていると思います:

vet = [random.randint(1,10) for _ in range(100000)]
于 2012-08-28T21:39:26.240 に答える