Giriş
Bir gri kod sayısı sadece bir bit yerine bit değişken miktarda geçiş artırılır ki burada ikili gösterimi için bir alternatiftir. İşte ondalık ve ikili eşdeğerleriyle birlikte bazı gri kodlar:
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
Gri Kodun Döngüsel Bit Deseni
Bazen "yansıyan ikili" olarak adlandırılır, bir seferde sadece bir bit değiştirme özelliği, en az anlamlı bitten başlayarak her sütun için döngüsel bit desenleriyle kolayca elde edilir:
bit 0: 0110011001100110011001100110011001100110011001100110011001100110
bit 1: 0011110000111100001111000011110000111100001111000011110000111100
bit 2: 0000111111110000000011111111000000001111111100000000111111110000
bit 3: 0000000011111111111111110000000000000000111111111111111100000000
bit 4: 0000000000000000111111111111111111111111111111110000000000000000
bit 5: 0000000000000000000000000000000011111111111111111111111111111111
...ve bunun gibi.
Amaç
Bir gri kodun yastıklı olmayan bir giriş dizgisine bakıldığında, sıradaki tek bir karakteri değiştirerek veya bir kod hazırlayarak gri kodu artırın 1
( 2'nin bir sonraki gücünü artırırken ), ardından sonucu yastıklı olmayan bir gri kod olarak verin.
Uyarılar
0
Giriş olarak endişelenmeyin ya da boş bir dize.- En düşük giriş olacaktır
1
ve ortamın dayattığı bellek sınırlamaları dışında dize uzunluğuna bir üst sınır yoktur. - Dolgulu olmayan dize ile demek istediğim, öndeki veya sondaki beyaz boşluk (isteğe bağlı sondaki yeni satır dışında) ve
0
giriş veya çıkışta satır aralığı olmayacak .
G / Ç formatları
Aşağıdaki biçimler girdi ve çıktı için kabul edilir, ancak dizeler diğer biçimlere göre teşvik edilir:
- ilk önce en anlamlı "bit"
- dolgulu olmayan karakter dizisi veya ASCII
'1'
s ve'0'
s dizeleri 1
s ve0
s doldurmasız tam sayı dizisi- dolgulu olmayan boolean dizisi
Nelere izin verilmiyor:
- ilk önce en az anlamlı "bit"
- ondalık, ikili veya tekli tam sayı
- sabit uzunlukta veri yapısı
- yazdırılamayan ASCII endekslerinin karakter dizisi veya dizesi
1
ve0
Testler
input -> output
1 -> 11
11 -> 10
111 -> 101
1011 -> 1001
1111 -> 1110
10111 -> 10110
101100 -> 100100
100000 -> 1100000
İstek üzerine daha fazla test eklenebilir.
Kriterler
Bu kod golf , bayt cinsinden en kısa program kazanıyor! Tüm bağlar daha önceki başvuruları destekleyerek kopacak; standart boşluklar uygulanır. Gönderilen en iyi cevap 9 Ekim 2016'da kabul edilecek ve daha iyi cevaplar verildiğinde güncellenecektir.
0011
8