giriş
Anahtarlama sırası şu şekilde tanımlanır:
nBir daire içinde duran insanlarla başlayın ( 6bu örnek için).
1 2
6 3
5 4
Kişiden başlayarak 1"seçilen" kişinin solundaki kişi kaldırılır.
1
6 3
5 4
Kaldırılan kişi kaldırma yöntemini "değiştirebilir":
- Kaldırılan kişi eşitse (bu durumda), kaldırılan bir sonraki kişi bir sonraki "seçilen" kişinin sağında olacaktır.
- Kaldırılan kişi tuhafsa, bir sonraki kaldırılan kişi bir sonraki "seçilen" kişinin solunda olur.
Bir sonraki seçilen kişi daha önce kaldırılan kişiye de bağlıdır.
- Kaldırılan kişi eşitse, bir sonraki seçilen kişi önceki seçilen kişinin sağında olacaktır.
- Kaldırılan kişi tuhafsa, yukarıya bakın, ancak "sağ" ı "sol" ile değiştirin.
Öyleyse bir sonraki seçilen kişi 6.
Şimdi sağdaki kişiyi kaldırıyoruz 6, yani 5:
1
6 3
4
Çünkü 5garip, kaldırılan kişi artık solda. Yeni seçilen kişi 1.
Şimdi kaldırıyoruz 3:
1
6
4
Bu işleme 1 numara bırakılıncaya kadar devam ediyoruz - bu örnekte son sayı 1. Bu nedenle S(6) = 1.
İlk birkaç sayı:
n | S(n)
---------
1 | 1
2 | 1
3 | 3
4 | 1
5 | 5
6 | 1
7 | 3
8 | 6
9 | 5
10 | 6
11 | 9
Görev
Göreviniz, verildiğinde S(n)( nAnahtarlama sırasındaki inci sayısı) nen az bayt kullanarak dönen bir program (veya işlev) yapmaktır .
Örnek giriş ve çıkışlar:
1 -> 1
10 -> 6
13 -> 13
Pozitif bir tamsayı almanız garanti edilir.
Bu kod golf , bayt en kısa kod kazanır!
Not: Arama sorununu ortadan kaldıracak OEIS dizisi (ne?) Yoktur.
2asla kalmıyor, ama öyle 7mi?