如何在python中独立地平均多个输出

2024-05-23 20:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

python3:嗨,我有这段代码

for money in range(0, 2501, 500):
    print("{} Euro".format(money), end='')
    throws = 0
    d = trump.possession(board)

    while False in d.values():
        prevLoc = piece.location
        piece.move(trump.throw())
        throws += 1
        if piece.location < prevLoc:
            money += 200

        if board.names[piece.location] in d and d[board.names[piece.location]] == False and money >= board.values[piece.location]:
            money -= board.values[piece.location]
            d[board.names[piece.location]] = True
    return throws

这段代码从0开始,运行代码,查找购买整个电路板所需的抛出量,用500开始,1000开始,以此类推

我的问题是,我如何才能采取的平均抛出购买整个董事会为每个起始值?我的代码现在返回所有起始值的抛出量,但只模拟一次,因此可能不准确。 我搜索了很多,尝试了一些东西,但我有这个问题,因为我想运行它,比如说,2000次,并得到平均值为每个开始值的钱。你知道吗

有人有什么建议吗?已经挣扎了一段时间了。。你知道吗

我试着做了一个从0到2000的for循环,然后在这个for循环的内部打印0-2500,然后在一个函数中使用下面的代码,将throws的返回值附加到一个列表中,并对其进行求和,然后在2000年之前对其进行分离,结果不是很好。。。你知道吗


Tags: and代码inboardfalseforpieceif
1条回答
网友
1楼 · 发布于 2024-05-23 20:48:35

我假设这是一个函数,由于return语句。您需要将输出收集到一个列表中,然后在最后求平均值。你知道吗

def calc_throws(simulations):
    throw_list = []
    average = lambda x: sum(x)/len(x)
    for i, money in enumerate(range(0, 2501, 500)):
        print("{} Euro".format(money), end='')
        throw_list.append([money, []])
        for _ in range(simulations):
            throws = 0
            d = trump.possession(board)
            while False in d.values():
                prevLoc = piece.location
                piece.move(trump.throw())
                throws += 1
                if piece.location < prevLoc:
                    money += 200

                if board.names[piece.location] in d and d[board.names[piece.location]] == False and money >= board.values[piece.location]:
                    money -= board.values[piece.location]
                    d[board.names[piece.location]] = True
            throw_list[i][1].append(throws)
        throw_list[i][1] = average(throw_list[i][1])
    return throw_list

而不是一个单一的数字,它返回一个列表,如#[[0,20],[500,15],...[2500,3]](或任何合理的数字),它为您提供每一笔启动资金的平均值。你知道吗

相关问题 更多 >