增量门通过谜语只有广场的立场开放

2024-06-01 20:27:19 发布

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

有一百扇门,一开始都是关着的,一个机器人做100次传球,这样每次传球都会增加下一个起跑标记。因此

1, 2, 3,.....
2, 4, 6, 8,....
3, 6, 9, 11,....
4, 8, 12, 16,....
.......
100

每次访问一扇门时,它都会从当前状态切换,因此,如果门打开,它就会关闭,如果门关闭,它就会打开。 100次通过后,找到打开的门的数量。你知道吗

问题很小,这是我的解决办法

def door_traversal():
    arr = []
    arr = [0 for i in range(101)]
    for i in range(1, 101, 1):
        for j in range(i, 101, i):
            arr[j] = not arr[j]

    count = 0
    for i in range(1, 101, 1):
        if arr[i] == 1:
            count += 1
    return count

答案是10,在检查我如何得到这个数字10,似乎所有的门指数,这是完美的正方形是打开。这样打开的门是

1,4,9.....

我一直想弄明白的是这背后的数学。有什么帮助吗?你知道吗


Tags: in标记for数量状态defcount机器人