Giới thiệu
Một Mã Grey là một thay thế cho biểu diễn nhị phân trong đó một số được tăng lên bằng cách chuyển đổi qua lại chỉ có một chút, chứ không phải là một số lượng biến của các bit. Dưới đây là một số mã màu xám cùng với số thập phân và tương đương nhị phân của chúng:
decimal | binary | gray
-------------------------
0 | 0 | 0
-------------------------
1 | 1 | 1
-------------------------
2 | 10 | 11
-------------------------
3 | 11 | 10
-------------------------
4 | 100 | 110
-------------------------
5 | 101 | 111
-------------------------
6 | 110 | 101
-------------------------
7 | 111 | 100
-------------------------
8 | 1000 | 1100
-------------------------
9 | 1001 | 1101
-------------------------
10 | 1010 | 1111
-------------------------
11 | 1011 | 1110
-------------------------
12 | 1100 | 1010
-------------------------
13 | 1101 | 1011
-------------------------
14 | 1110 | 1001
-------------------------
15 | 1111 | 1000
Mô hình bit tuần hoàn của mã màu xám
Đôi khi được gọi là "nhị phân phản xạ", thuộc tính chỉ thay đổi một bit tại một thời điểm có thể dễ dàng đạt được với các mẫu bit tuần hoàn cho mỗi cột bắt đầu từ bit có trọng số thấp nhất:
bit 0: 0110011001100110011001100110011001100110011001100110011001100110
bit 1: 0011110000111100001111000011110000111100001111000011110000111100
bit 2: 0000111111110000000011111111000000001111111100000000111111110000
bit 3: 0000000011111111111111110000000000000000111111111111111100000000
bit 4: 0000000000000000111111111111111111111111111111110000000000000000
bit 5: 0000000000000000000000000000000011111111111111111111111111111111
... và cứ thế.
Mục tiêu
Đưa ra chuỗi đầu vào không đệm của mã màu xám, tăng mã màu xám bằng cách xen kẽ một ký tự trong chuỗi hoặc thêm vào một 1
(khi tăng lên lũy thừa 2), sau đó xuất kết quả dưới dạng mã màu xám không đệm.
Hãy cẩn thận
- Đừng lo lắng về việc lấy
0
hoặc một chuỗi trống làm đầu vào. - Đầu vào thấp nhất sẽ là
1
và không có giới hạn trên của độ dài chuỗi ngoài các giới hạn bộ nhớ được áp đặt bởi môi trường. - Theo chuỗi không đệm, ý tôi là sẽ không có khoảng trắng ở đầu hoặc cuối (ngoài dòng mới theo dõi tùy chọn) và không có
0
s hàng đầu trong đầu vào hoặc đầu ra.
Định dạng I / O
Các định dạng sau đây là hình thức được chấp nhận cho đầu vào và đầu ra, nhưng các chuỗi được khuyến khích hơn các định dạng khác:
- "bit" quan trọng nhất đầu tiên
- mảng ký tự không đệm hoặc chuỗi của ASCII
'1'
s và'0'
s - mảng số nguyên không đệm của
1
s và0
s - mảng boolean không đệm
Những gì không được phép:
- "bit" đáng kể đầu tiên
- số nguyên thập phân, nhị phân hoặc đơn nguyên
- cấu trúc dữ liệu có độ dài cố định
- mảng ký tự hoặc chuỗi các chỉ mục ASCII không in được
1
và0
Xét nghiệm
input -> output
1 -> 11
11 -> 10
111 -> 101
1011 -> 1001
1111 -> 1110
10111 -> 10110
101100 -> 100100
100000 -> 1100000
Nhiều bài kiểm tra có thể được thêm vào theo yêu cầu.
Tiêu chí
Đây là môn đánh gôn , vì vậy chương trình ngắn nhất tính bằng byte thắng! Tất cả các mối quan hệ sẽ bị phá vỡ bằng cách ủng hộ đệ trình trước đó; sơ hở tiêu chuẩn áp dụng. Câu trả lời được gửi tốt nhất sẽ được chấp nhận vào ngày 9 tháng 10 năm 2016 và được cập nhật bất cứ khi nào có câu trả lời tốt hơn.
0011
trong 8