用python连续数硬币?

2024-09-27 00:20:31 发布

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

我正在尝试自学Python,我正在修改代码,这些代码目前正在计算多次翻转中的正面和反面数量。我想让它数一数连续的人头数。这是我目前掌握的密码。在

def coinFlips(numberOfTosses):
    Heads = 0
    tossNum = 0
    while tossNumber < numberOfTosses:
        value = random.randint(1,2)
        if value == 1:
            numHeads = Heads + 1
        tossNum = tossNum + 1
    return (Heads, numTosses-Heads)

我觉得答案就在眼前,但我一辈子都想不出来!在


Tags: 代码密码数量valuedefrandomrandintheads
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:31

听起来你想groupby连续的头和尾,然后找到maxlen只为头部(1)投掷的maxlen):

import itertools as it
def coinFlips(numberOfTosses):
    flips = (random.randint(1,2) for _ in range(numberOfTosses))
    return max(len(list(tosses)) for coin, tosses in it.groupby(flips) if coin == 1)
            ^   ^   ^^    ^^                              ^^                   ^^
           max len list tosses                    groupby consecutive       only heads

相关问题 更多 >

    热门问题