Pythonのrandom.choices
関数は、重み付きのランダム値を生成するための便利なツールです。この記事では、その使用方法と実際のコード例を紹介します。
random.choices関数の基本
random.choices
関数は、指定したシーケンス(リスト、タプル、文字列など)からランダムに要素を選択し、その結果をリストとして返します。重み付けパラメータweights
またはcum_weights
を使用することで、各結果の可能性を調整することができます。
基本的な使用方法は次のとおりです。
random.choices(sequence, weights=None, cum_weights=None, k=1)
実際のコード例
以下に、random.choices
関数を使用して重み付きランダム値を生成するPythonのコード例を示します。
import random
# 1~6の目が出るサイコロ(dice)を用意
dice = list(range(1,7))
# 6の目が出やすいように重みを設定する
w = [1, 1, 1, 1, 1, 2]
# 歪んだサイコロを1000回振ってサンプルを得る
samples = random.choices(dice, k = 1000, weights = w)
# 結果の確認
for i in dice:
print(i, ':', samples.count(i))
このコードは、1から6までの数字(サイコロの目)を持つリストからランダムに選択します。ただし、6の目が出る確率が他の目の2倍になるように重み付けしています。
まとめ
Pythonのrandom.choices
関数は、重み付きのランダム値を簡単に生成することができます。これにより、現実世界の偏りや歪みを持つデータを模擬することが可能になります。この関数を理解し、適切に使用することで、Pythonプログラミングの幅が広がります。