【发布时间】:2018-07-20 02:14:09
【问题描述】:
假设如果有 100 个人按照 1 到 100 的顺序站成一圈。第 1 号有一把剑。他杀死了下一个人(即第 2 号)并将剑交给下一个(即第 3 号)。所有人都这样做,直到只有 1 人幸存。哪个数字最后存活?
从 1 到 100 有 100 人。
我试过了
persons <- c(1:100)
for (i in 1:100) {
qu <- persons[seq_along(persons) %% 2 > 0]
if (q2 == 2) {
print(q2[2])
}
}
还有这个
q=0
while(q==0){ persons=persons[seq_along(persons) %% 2 > 0]
if(length(persons)==2){ print(persons[2])
q=1}}
但这给出的答案是 65,这是错误的,不能解决目的。
有什么办法可以做到这一点?
【问题讨论】:
-
只是为了说明,这个问题被称为the Josephus problem。