Giới thiệu
Trình tự chuyển đổi được định nghĩa như vậy:
Bắt đầu với n
những người đứng trong một vòng tròn ( 6
ví dụ này).
1 2
6 3
5 4
Bắt đầu từ người 1
, người ở bên trái của người "được chọn" sẽ bị xóa.
1
6 3
5 4
Người bị loại bỏ có thể "chuyển" phương thức loại bỏ lên:
- Nếu người bị loại bỏ là số chẵn (trong trường hợp này), người bị xóa tiếp theo sẽ ở bên phải của người "được chọn" tiếp theo.
- Nếu người bị xóa là số lẻ, người bị xóa tiếp theo sẽ ở bên trái của người "được chọn" tiếp theo.
Người được chọn tiếp theo cũng phụ thuộc vào người bị loại bỏ trước đó.
- Nếu người bị loại là chẵn, người được chọn tiếp theo sẽ ở bên phải của người được chọn trước đó.
- Nếu người bị xóa là số lẻ, xem bên trên, nhưng thay thế "bên phải" bằng "bên trái".
Vì vậy, người được chọn tiếp theo là sau đó 6
.
Bây giờ chúng tôi loại bỏ người ở bên phải 6
, đó là 5
:
1
6 3
4
Bởi vì 5
là số lẻ, người bị loại bỏ bây giờ ở bên trái. Người mới được chọn là 1
.
Bây giờ chúng tôi xóa 3
:
1
6
4
Chúng tôi tiếp tục quá trình này, cho đến khi chúng tôi còn lại 1 số - trong ví dụ này, số cuối cùng là 1
. Vì vậy, do đó S(6) = 1
.
Một vài số đầu tiên là:
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
Bài tập
Nhiệm vụ của bạn là tạo ra một chương trình (hoặc một hàm) trả về S(n)
( n
số thứ trong chuỗi Chuyển đổi) khi được cung cấp n
, sử dụng lượng byte ít nhất.
Ví dụ đầu vào và đầu ra:
1 -> 1
10 -> 6
13 -> 13
Bạn được đảm bảo để có được một số nguyên dương.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng!
Lưu ý: Không có trình tự OEIS (cái gì?), Để giúp bạn tránh những rắc rối khi tìm kiếm.
2
không bao giờ vẫn còn, nhưng không 7
?