1

我关于stackoverflow的第一个问题!标题含糊,让我详细说明:我有一个 NxN 下三角逻辑矩阵

N = 10    % for example
L = tril(true(N),-1)
L =
     0     0     0     0     0     0     0     0     0     0
     1     0     0     0     0     0     0     0     0     0
     1     1     0     0     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     1     1     1     1     1     0     0     0     0     0
     1     1     1     1     1     1     0     0     0     0
     1     1     1     1     1     1     1     0     0     0
     1     1     1     1     1     1     1     1     0     0
     1     1     1     1     1     1     1     1     1     0

对角线以下所有为真。对于 am=2^pa 2 的幂,我想得到 m NxN 下三角逻辑矩阵 L_1, ..., L_m 使得 L_i 的每一列都包含第 i 个 1/m-th(四舍五入)数L 中相应列中的 Trues。一个结果是 \sum_i(L_i) == L 再次。

例如,对于 m = 2,我知道

L_2 = L(:,ceil((N:2*N-1)/2))
L_2 =
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     1     0     0     0     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0     0
     1     1     1     1     1     0     0     0     0     0
     1     1     1     1     1     1     1     0     0     0
     1     1     1     1     1     1     1     1     1     0
L_1 = L - L_2
L_1 =
     0     0     0     0     0     0     0     0     0     0
     1     0     0     0     0     0     0     0     0     0
     1     1     0     0     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0     0
     1     1     1     1     0     0     0     0     0     0
     0     1     1     1     1     0     0     0     0     0
     0     0     0     1     1     1     0     0     0     0
     0     0     0     0     0     1     1     0     0     0
     0     0     0     0     0     0     0     1     0     0
     0     0     0     0     0     0     0     0     0     0

可以解决问题,但是这个技巧不能推广到 m 的 2 的更高幂。对于一般 N 和 m = 2^p,任何想法如何合理快速地做到这一点?

(上下文:L 的每一列都是二等分算法的逻辑索引。m = 2^p 的每个下一个幂 p 对应于二等分算法的更深层次)

4

0 回答 0