3 つのリストから 1 つの項目をランダムに選択したいと考えています。各リストは異なる選択確率を表しています。
高、中、低の「優先度」の 3 つのリスト (3 つの配列にすることもできます) があります。
この3つのリストから優先確率で1つ選びたい
例: 高から 70% の確率で中盤から 20%、低から 10%
ただし、リストの一部は空である可能性があります (すべてではない)。
いずれかのリスト内に少なくとも 1 つの項目がある
それを行うアルゴリズム(任意の言語ですが、C#Java Pythonを好む)を探しています
次のコード(Python)を試しましたが、空の状態が原因で機能しません。アイテムがあってもアイテムが選択されないことがあります。
x = random.randint(1,100)
if x < 71 and highChance != []:
return random.choice(highChance)
elif x >=71 and x < 91 and midChance != []:
return random.choice(midChance)
elif lowChance != []:
return random.choice(lowChance)