问题描述:有15个基督徒和15个非基督徒在海上遇险,为了能让一部分人活下来不得不将其中15个人扔到海里。有人想了一个办法就是让大家围成一个圈,由某个人开始从1报数,报到9的人就扔进海里,他后面的人接着从1开始报数,返回如此至扔掉15人。请问要如何安排基督徒的站位才能让所有基督徒幸免遇难?
class Problem:
def __init__(self, isd:bool):
self.isd = isd
self.next = None
h = Problem(False)
k = h
for _ in range(1, 31):
n = Problem(False)
k.next = n
k = n
k.next = h
m = 0
k = h
while m < 15:
for _ in range(0, 9):
k = k.next
k.isd = True
k = k.next
m += 1
for _ in range(30):
print(_ + 1, h.isd) # True 即死掉的非基督徒
h = h.next
原文:https://www.cnblogs.com/darkchii/p/12862771.html