掷硬币直到 50/50

Coinflip until 50/50

"pretty new programmer here" 我想做一个抛硬币代码,抛硬币 100 次并给我正面或反面的总价值,但我想一直抛到 50/50。

我有掷硬币但我在一个无限循环中我无法摆脱


heads = 0
tails = 0
tries = 0

while heads != 50 and tails != 50:
    for i in range(100):
        x = random.randint(0,1)
        if x == 1:
            heads += 1
        else:
            tails += 1
    print(heads,tails)
    tries += 1
    tails = 0
    heads = 0

print(tries)

我希望它每次都显示正面和反面,然后显示达到 50/50 所需的迭代次数。

例如

55 45

52 48

47 53

51 49

53 47

40 60

45 55

42 58

51 49

46 54

54 46

42 58

51 49

45 55

48 52

50 50

我知道答案一定很简单,但我就是想不出来。

提前致谢

在while循环开始时将heads和tails设置为0,而不是结束时,否则在检查while条件的那一刻,两者将始终为0。

目前您正在循环结束时将头部和尾部值都重置为 0。所以每次检查 while 条件时,heads 和 tails 变量都等于零。

解决此问题的一个方法是将代码末尾修改为如下所示

tries += 1
if heads == 50:
    break
tails = 0
heads = 0

这将检查值是否等于 50然后将值重置为 0 并退出 while 循环,如果是这种情况