Как взвешивать случайные числа в Python
Я натолкнулся на сценарий, который дает мне случайный бросок костей между 1 и 6.
import random
min = 1
max = 6
roll_again = "yes"
while roll_again == "yes" or roll_again == "y":
print random.randint(min, max)
print random.randint(min, max)
roll_again = raw_input("Roll the dices again?")
Итак, я решил взять этот сценарий и создать сценарий, который использует значения случайного броска костей и использует их в качестве результатов в футбольной игре.
while roll_again == "yes" or roll_again == "y":
team1_score = random.randint(min, max)
team2_score = random.randint(min, max)
roll_again = raw_input("Roll the dices again?")
Теперь у меня около 20 футбольных команд, которые играют в лиге. Я создал электронную таблицу и составил график для этой лиги. Я прочитал в 2 командах, которые играют в каждую игру и бросают кубики в сценарии выше, и это дает мне счет за эту игру (то есть team1_score = 5, team2_score = 3)
Теперь, как и в реальной жизни, некоторые из этих команд сильнее других, поэтому я хочу написать сценарий, который весит команды сильнее, чем другие, и, таким образом, дает ему больше шансов на победу (более высокий результат, чем у более слабой команды). Итак, если бы у меня был такой список:
Вес команды
team1 60
team2 20
team3 8
team3 8
team5 4
Как бы я передать это в random.randint(min,max)
так что это дает лучшую вероятность того, что более сильная команда получит более высокий балл, чем более слабая команда?
1 ответ
Сначала вы можете найти соотношение между весом ваших команд, а затем разделить случайный диапазон на эти соотношения, например, здесь вес team1
в 7,5 раз больше, чем team3
поэтому, когда вы хотите выбрать счет между этими двумя командами на основе этого отношения, вы можете выбрать счет для team1
между max - ((max-min)/7.5)
и для team3
между max
а также min
,