假设我有一个矩阵A=[];
我想知道是否有任何方法可以以仅填充块必须占用内存而其余块不能占用的方式来表示它,例如:
A = 1 0 0
0 1 0
0 0 1
现在,每个块都需要 1 位内存来存储矩阵,因此我想知道是否可以将矩阵存储为:
A = 1
1
1
并且空格根本不能占用任何内存。是否有任何文件格式可以以这种方式表示矩阵?
不,你正在处理比特。存储“填充”位的列表比简单地存储位需要更多的内存。例如对于一个简单的 1x8 矩阵:
0 1 2 3 4 5 6 7 <---bit-wise addresses
m = [0,1,0,0,0,1,1,1]
可以存储为单个字节的内存,存储比率为每位 1 位。
仅存储 SET 位的位置需要 4 个字节。如果设置了所有位,则需要 8 个字节来存储这些位置。所以现在你已经从一个恒定的 1 字节要求变成了一个变量 0 -> 8 字节。
您可以开发一种方法,将有关位置的信息存储在列表中,但这至少会消耗更多的内存,因为您会以这种方式获胜。所以至少没有。