![]() |
1
2
这个问题并不能说明0位置的数字到底发生了什么。在本例中,在步骤1,数字1(在位置0处)被消除。但在第2步,数字2(在位置0)仍然存在。 为了得到这个答案,我假设这个例子是错误的,0位置的数字总是存在的。所以这个例子应该是这样的:
这导致序列1,2,4,8,14,20,28,40。。。那就是 not found in OEIS (但见下文附录)。 以下是在不计算整个序列的情况下,如何确定特定数字K是否存在的方法: 设J=K 1(K的初始位置)。
附录 当我断定这个序列不在OEIS中时,我有点仓促。假设我们把位置从1开始编号,而不是从0开始。然后我们得到序列1,3,7,13,19,27,39。。。那就是 OEIS sequence A000960 “弗拉维乌斯约瑟夫斯的筛子”。不过,仍然没有封闭形式的解决方案。 |
![]() |
2
2
一种解决方案是在每次迭代时跟踪列表中K的索引。 在每一步,我们首先检查K的指数是否可以被整除。如果是,则返回false。否则,我们只需从K的索引中减去K之前可被i整除的元素的个数(即K向左移动多次)。 我们继续这样做,直到只剩下一个元素。 |