python生成格雷码

import numpy as np
n=3
gray_map=np.empty((1<<n,n))
for i in range(0,1<<n):
    gray=i^(i>>1)
    print("{0:0{1}b}".format(gray,n))
    gray_bin=np.binary_repr(gray,width=n)
    gray_map[i,:]=list(map(int, gray_bin))
print(gray_map)
000
001
011
010
110
111
101
100
[[0. 0. 0.]
 [0. 0. 1.]
 [0. 1. 1.]
 [0. 1. 0.]
 [1. 1. 0.]
 [1. 1. 1.]
 [1. 0. 1.]
 [1. 0. 0.]]
posted @ 2022-08-19 22:44  luoganttcc  阅读(10)  评论(0编辑  收藏  举报