Giới thiệu
Tất nhiên, chúng tôi đã có rất nhiều thử thách theo trình tự , vì vậy đây là một thử thách khác.
Trình tự Kimberling ( A007063 ) diễn ra như sau:
1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28, 22, ...
Điều này được tạo ra bằng cách xáo trộn các lần lặp thông thường:
[1] 2 3 4 5 6 7 8
Thuật ngữ đầu tiên của chuỗi là 1
. Sau đó, chúng tôi cải tổ lại chuỗi cho đến khi tất cả các thuật ngữ bên trái được sử dụng. Sự xáo trộn có hoa văn right - left - right - left - ...
. Vì không có điều khoản ở bên trái của 1
, không có sự xáo trộn. Chúng tôi nhận được như sau:
2 [3] 4 5 6 7 8 9
Trong lần lặp thứ i , chúng tôi loại bỏ mục thứ i và đưa nó vào trình tự của chúng tôi. Đây là lần lặp thứ 2 , vì vậy chúng tôi loại bỏ mục thứ 2 . Trình tự trở thành : 1, 3
. Đối với lần lặp tiếp theo của chúng tôi, chúng tôi sẽ xáo trộn lần lặp hiện tại với mẫu ở trên. Chúng tôi lấy mục không sử dụng đầu tiên ở bên phải của mục thứ i . Điều này xảy ra 4
. Chúng tôi sẽ nối nó với lần lặp mới của chúng tôi:
4
Bây giờ chúng ta sẽ lấy mục không sử dụng đầu tiên ở bên trái của mục thứ i . Đây là 2
. Chúng tôi sẽ nối nó với lần lặp mới của chúng tôi:
4 2
Vì không có mục nào ở bên trái của mục thứ i , chúng tôi sẽ chỉ nối phần còn lại của chuỗi vào lần lặp mới:
4 2 [5] 6 7 8 9 10 11 ...
Đây là lần lặp thứ 3 của chúng tôi , vì vậy chúng tôi sẽ loại bỏ mục thứ 35
. Đây là mục thứ ba trong chuỗi của chúng tôi:
1, 3, 5
Để có được lần lặp tiếp theo, chỉ cần lặp lại quá trình. Tôi đã tạo một gif nếu nó không rõ ràng:
Các gif làm tôi mất nhiều thời gian hơn viết bài thực tế
Bài tập
- Cho một số nguyên n không âm , xuất ra các số hạng n đầu tiên của chuỗi
- Bạn có thể cung cấp một chức năng hoặc một chương trình
- Đây là môn đánh gôn , vì vậy bài nộp có số byte ít nhất sẽ thắng!
Các trường hợp thử nghiệm:
Input: 4
Output: 1, 3, 5, 4
Input: 8
Output: 1, 3, 5, 4, 10, 7, 15, 8
Input: 15
Output: 1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28
Lưu ý: Dấu phẩy trong đầu ra là không cần thiết. Ví dụ, bạn có thể sử dụng dòng mới hoặc xuất danh sách, v.v.