【问题标题】:How to Weight Random Numbers in Python [duplicate]如何在 Python 中对随机数进行加权
【发布时间】:2015-12-12 08:20:17
【问题描述】:

我遇到了一个脚本,该脚本为我提供了 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)

现在,就像在现实生活中一样,其中一些球队比其他球队更强,所以我想编写一个脚本来衡量球队比其他球队强,从而给它更好的获胜机会(比弱队得分更高)。所以,如果我有这样的清单:

团队重量

团队1 60

team2 20

team3 8

team3 8

团队5 4

我如何将它传递给random.randint(min,max),以便更强的球队比弱队获得更高分数的可能性更大?

【问题讨论】:

标签: python random weighted


【解决方案1】:

你可以先找到你的队伍的权重之间的关系,然后用这个关系除以随机范围,例如这里team1的权重是team3的7.5倍,所以当你想选择一个分数时在这两个基于这种关系的团队之间,您可以在max - ((max-min)/7.5) 之间选择team1 的分数,在maxmin 之间选择team3 的分数。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 2021-07-19
    • 2019-05-16
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2019-09-20
    • 2012-10-27
    • 1970-01-01
    相关资源
    最近更新 更多