Pythonでは、乱数を生成するための様々な方法があります。その中でも、特定の確率分布に従った乱数を生成する方法は、シミュレーションや機械学習などの分野で非常に重要です。
random.choices関数を利用した重み付き乱数の生成
Pythonのrandom.choices
関数を利用すると、ランダム値に重み付けを行うことができます。これは、確率を偏らせることを意味します。以下に具体的なコードを示します。
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の目が出やすいように重み付けを行っています。その結果、6の目が他の目に比べて約2倍出現していることが確認できます。
まとめ
Pythonのrandom.choices
関数を利用すると、特定の確率分布に従った乱数を簡単に生成することができます。これは、シミュレーションや機械学習などの分野で非常に役立ちます。