概述
为了在鼠尾草中编程汉明鳕鱼(基于python的编译器),我需要创建一个矩阵,其中每一列都是数字的二进制表示形式
说Hamming(3)矩阵应该像这样
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
这是数字从1到7的二进制表示形式。
所以到目前为止,我所做的就是将任何给定的数字转换为二进制表示形式:
我做了这个小功能,它需要两个值n和r
并在r位上代表n
binrep(n,r)
x=n
L=[]
LL=[]
while (n>0):
a=int(float(n%2))
L.append(a)
n=(n-a)/2
while (len(L)
L.append(0)
#print(L)
LL=L[::-1]
return LL
所以现在我想收集我得到的所有LL,并像上面的一样将它们放在一个大矩阵中
python大神给出的解决方案
您只需要将所有这些二进制表示形式转换为整数列表,将它们收集在列表列表中,然后最后transpose该列表列表即可获得所需的输出。
n = 3
binary = []
for i in range(1, 2**n):
s = binrep(i, n)
binary.append(map(int, s))
matrix = zip(*binary)
或一行:matrix = zip(*(map(int, binrep(i, n)) for i in range(1, 2**n)))
结果是
[(0, 0, 0, 1, 1, 1, 1),
(0, 1, 1, 0, 0, 1, 1),
(1, 0, 1, 0, 1, 0, 1)]
另外请注意,还有其他方法convert numbers to binary,例如使用str.format:
def binrep(n,r):
return "{0:0{1}b}".format(n, r)
最后
以上就是清新太阳为你收集整理的python中矩阵的表示方法_在python中创建数字的二进制表示形式的矩阵 - python的全部内容,希望文章能够帮你解决python中矩阵的表示方法_在python中创建数字的二进制表示形式的矩阵 - python所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复