Giới thiệu
Trình tự chuyển đổi được định nghĩa như vậy:
Bắt đầu với nnhững người đứng trong một vòng tròn ( 6ví 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ì 5là 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)( nsố 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.
2không bao giờ vẫn còn, nhưng không 7?