チャレンジ
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['']