Выполнение случайной функции с определенным шансом в Python
Есть такой код:
import random
def one():
print("1")
def two():
print("2")
def three():
print ("3")
spisok_func = [one,two,three]
spisok = random.choices(spisok_func, weights=(50,30,10))
spisok()
Мне нужно чтобы одна из трех функций выполнялась рандомно с определенным шансом. Если убрать "weights=(50,30,10)) " то spisok() выполняет одну из трех функций но тогда шас просто 1к3. Подскажите как сделать, чтобы выполнялась одна из трех функций и каждая со своим шансом?
Конечно, чтобы указать разные вероятности для выполнения каждой функции, вы можете использовать метод random.choices() сделать веса равными и добавить дополнительные проверки, чтобы убедиться, что рандомно выбранная функция будет выполнена. Вот пример исправленного кода:
```python
import random
def one():
print("1")
def two():
print("2")
def three():
print("3")
spisok_func = [one, two, three]
# Увеличьте вероятность какого-либо события для изменения шансов выполнения каждой функции
weights = [5, 3, 1]
# Выберите случайную функцию на основе указанных весов
chosen_func = random.choices(spisok_func, weights=weights, k=1)[0]
# Выполните выбранную функцию
if chosen_func is one:
one()
elif chosen_func is two:
two()
elif chosen_func is three:
three()
```
Этот код будет выполнять каждую функцию со своей вероятностью, которая задается весами.
Условие прописать
Ок