狐狸找兔子python

问题:
围绕着山顶有10个洞,一只兔子和一只狐狸分别住在洞里,狐狸总想吃掉兔子,一天,兔子对狐狸说:你想吃掉我有一个条件,先把洞顺序编号,你从最后一个洞出发,第一次先到第一个洞找我,第二次隔一个洞找我,第三次隔两个洞找我,第四次隔三个洞找我,……依此规律类推,寻找次数不限,我躲在一个洞里不动,只要你找到我,就可以吃掉我。狐狸一想,只有十个洞,次数又不限,哪有找不着的道理,马上答应了条件。结果狐狸跑断了腿也没有找到兔子。请问,兔子躲在哪个洞里?假设狐狸找了1000次。

img

# 狐狸找兔子问题~
import numpy as np

# 山洞
x = np.arange(0, 11)[1:]
# 山洞状态(假设刚开始都是false,没有狐狸也没有兔子)
hole_flag = np.zeros(10) > 1
hole_flag[9] = True  # 初始化狐狸在最后一个洞

print('初始化山洞及状态:')
print(x)
print(hole_flag)

for i, j in enumerate(np.arange(1000)):
    # print(i, j, (i + j) % 10)
    hole_flag[(i + j) % 10] = True  # 将狐狸找过的洞状态置换为True,兔子不可能在这些洞里

# 输出兔子可能在的山洞
print('兔子可能在以下山洞:')
for i, j in enumerate(hole_flag):
    if (not j):
        print(i + 1, end=' ')