コードゴルフ: グレイコード質問する

コードゴルフ: グレイコード質問する

チャレンジ

nビットを出力する文字数による最短プログラムグレイコード.は、標準入力から取得されるn数値よりも小さい任意の数値になります (ユーザーの提案による)。グレー コードは、例のように標準出力に印刷されます。 1000 100000

注記: プログラムが適切な時間内にグレー コードを印刷するとは期待していません (n=100000やりすぎです)。ただし、印刷が開始されることは期待しています。

入力:

4

期待される出力:

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

ベストアンサー1

Python - 53文字

n=1<<input()
for x in range(n):print bin(n+x^x/2)[3:]

この 54 文字バージョンは Python2 の範囲の制限を克服するため、n=100000 が機能します。

x,n=0,1<<input()
while n>x:print bin(n+x^x/2)[3:];x+=1

69文字

G=lambda n:n and[x+y for x in'01'for y in G(n-1)[::1-2*int(x)]]or['']

75文字

G=lambda n:n and['0'+x for x in G(n-1)]+['1'+x for x in G(n-1)[::-1]]or['']

おすすめ記事