これがウィキのヨセフス問題です。私が抱えている問題はこれの線形変化ですが、明確にするために問題全体を言い換えます。
(数=自然数)
次の方法で数字を削除するプロセスがあります。
i=2
while 1:
remove numbers that are *placed* at positions divisible by i
i+=1
また、番号が与えられます。この番号が消去後も存続K
するかどうかを確認する必要があります。K
例(インデックスが0から始まると仮定)
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ...
0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15 ... (indices)
After step 1 ( elimination at i=2 )
2,4,6,8,10,12,14,16 ...
0,1,2,3, 4, 5, 6, 7 ... (indices)
After step 2 (elimination at i=3 )
2,4,6,10,12,16 ... ( 8 and 14 got removed cause they were at index 3 and 6 resp. )
0,1,2, 3, 4, 5 ... (indices)
ご覧のとおりsafe
、プロセスは除去のためにより高い値を選択するため、2、4、6はこのステップの後にあります。
繰り返しになりますが、K
どのように決定するのですか?K
safe