Trình tự nhị phân vuông-chéo được xây dựng như sau:
- Lấy dãy số tự nhiên dương:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ...
Chuyển đổi từng số thành nhị phân:
1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001, ...
Nối chúng:
11011100101110111100010011010101111001101111011111000010001 ...
Bắt đầu với
n=1
, tạo các hình vuông với chiều dài tăng dầnn
được lấp đầy từ trái sang phải, từ trên xuống dưới với các yếu tố của chuỗi trên:1
1 0 1 1
1 0 0 1 0 1 1 1 0
1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1
0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1
...
Lấy đường chéo (trên cùng bên trái xuống dưới bên phải) của mỗi hình vuông:
1, 11, 100, 1011, 00111, ...
Chuyển thành số thập phân (bỏ qua các số 0 đứng đầu):
1, 3, 4, 11, 7, ...
Bài tập
Viết chương trình hoặc hàm tạo ra chuỗi theo một trong các cách sau:
- Trả lại hoặc in trình tự vô hạn.
- Cho đầu vào
i
, trả lại hoặc in cáci
phần tử đầu tiên của chuỗi. - Cho đầu vào
i
, trả về hoặc ini
phần tử thứ của chuỗi (0 hoặc 1 được lập chỉ mục).
Vui lòng nêu trong câu trả lời của bạn mà bạn chọn định dạng đầu ra.
Đây là môn đánh gôn , câu trả lời ngắn nhất trong mỗi ngôn ngữ sẽ thắng.
Các trường hợp thử nghiệm
Dưới đây là 50 yếu tố đầu tiên của chuỗi:
1,3,4,11,7,29,56,141,343,853,321,3558,8176,3401,21845,17129,55518,134717,151988,998642,1478099,391518,7798320,8530050,21809025,61485963,66846232,54326455,221064493,256373253,547755170,4294967295,1875876391,2618012644,24710258456,6922045286,132952028155,217801183183,476428761596,51990767390,687373028085,1216614609441,7677215985062,15384530216172,22714614479340,15976997237789,0,256145539974868,532024704777005,601357273478135
3m
bằngn
?