在M个实验中,我多久被挑选一次索引

2024-09-18 18:44:25 发布

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

这可能是一个非常简单的问题,但我似乎无法理解如何回答它,此外,作为一名Python程序员,我非常新鲜。希望有人能指点一下

问题如下:我有一个由n+1项组成的数组,实验从索引0开始。概率为.5时,我可以按n+1的模向右或向左移动。如果他最后被选中,则索引获胜。总的来说,我有很多实验

我的代码:

#!/usr/bin/python3
import random
import matplotlib.pyplot as plt

def simulate_game( n, m ):
    bin = [0] * (n + 1)
    results = [0] * (n + 1)
    while m != 0:
        current = 0
        for i in bin:
            bin[i] = False
        while (all(bin) == 0):
            bin[current] = 1
            randnum = random.randint(0, 1)
            if randnum == 1:
                current += 1
                if current > 0:
                    current = (current % (n+1))
            elif randnum == 0:
                current -= 1
                if current < 0:
                    current = (current % (n+1))
        results[current] += 1
        m -= 1
    for x in results:
        print(x)
    return results

# Do not change anything below this line!
def main():
    L = simulate_game( 2, 10 )
    plt.plot( L, 'bo', L,'k' )
    plt.axis( [0,2,0.5*min(L[1:]),1.5*max(L)] )
    plt.xlabel('Players')
    plt.ylabel('Wins')
    plt.grid(True)
    plt.show()

if __name__ == "__main__":
    main()

在以下情况下,我收到的n=5和m=100的输出是不现实的: 44 0 55 1. 0 0

我一直在尝试调试,但代码中没有出现问题,如果能给我一个正确方向的提示,我将不胜感激,因为我慢慢变得越来越沮丧

提前谢谢


Tags: 代码importgameforifbinmaindef