3-D立方体包含三个维A,B,C。对于维A,B,C数组大小分别是40,400,4000。每个维分为4个相等的分区,共分为64块,因此,A、B、C每部分的大小分别是10、100、1000。
例如书上计算BC方体中的 b0c0b_0c_0b0c0块(即b0c0b_0c_0b0c0面), 通过扫描ABC的第1~4块(编号如书上P127 图5-3所示),然后将四个块压缩到 b0c0b_0c_0b0c0 面上(扫一个块便压缩),但是只需要一个BC块的放在内存,即得到了 b0c0b_0c_0b0c0 块。然后该块又可以继续计算 b1c0b_1c_0b1c0 块(直接赋值)。从而得到BC所有块,所以只要 100×\times× 1000 的内存单位即可。
而计算AC方体,要计算 a0c0a_0c_0a0c0块,那么要计算到第13块,将 1,5,9,13加在一起,得到 a0c0a_0c_0a0c0块,但是还要计算a1c0a_1c_0a1c0块,如果像计算BC块一样给内存,这样会丢失前面的数据(2,6,10的数据),所以不能像BC那样,同理a2c0,a3c0a_2c_0,a_3c_0a2c0,a3c0也一样,故要保留 1,2,3,4的数据块内容,然后每层叠加上去,最后可以得到整个 AC 的块。所以只要 40 ×\times× 1000 的内存单位。
而计算AB方体,要计算a0b0a_0b_0a0b0 ,要像计算AC一样保存之前的数据,不然会丢失(与之前的同理),故最小只要 40 ×\times× 400 的内存单位。
所以:
根据1到64的扫描次序,在块内存中保存所有相关的2-D平面所需的最小存储为:
40×400(用于整个AB平面)+40×1000(用于AC平面一行)+100×1000(用于BC平面一块)=156,000个内存单位。
2558

被折叠的 条评论
为什么被折叠?



