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.
