Pythonでは、random.choices
やnumpy.random.choice
などの関数を使用して、重み付きのランダム選択を行うことができます。
random.choicesを使用する方法
random.choices
関数は、重み付きのランダム選択を行うための関数です。この関数は、選択肢とその重みを引数として受け取り、重みに基づいてランダムに選択肢を選びます。
import random
# 選択肢とその重み
choices = ['apple', 'banana', 'cherry']
weights = [10, 1, 1]
# 重み付きランダム選択
fruit = random.choices(choices, weights=weights, k=1)[0]
print(fruit)
このコードでは、apple
が選ばれる確率はbanana
やcherry
が選ばれる確率よりも10倍高くなります。
numpy.random.choiceを使用する方法
numpy.random.choice
関数もまた、重み付きのランダム選択を行うための関数です。この関数は、選択肢とその重みを引数として受け取り、重みに基づいてランダムに選択肢を選びます。
import numpy as np
# 選択肢とその重み
choices = ['apple', 'banana', 'cherry']
weights = [0.5, 0.25, 0.25]
# 重み付きランダム選択
fruit = np.random.choice(choices, p=weights)
print(fruit)
このコードでは、apple
が選ばれる確率は50%、banana
とcherry
が選ばれる確率はそれぞれ25%です。
以上、Pythonでの重み付きランダム選択の方法について説明しました。これらの関数を活用することで、様々な状況でのランダム選択を柔軟に行うことができます。