计算 AND 的算法

标签 algorithm

我想计算从 0 到 (n)^{1/2} - 1 的数字的 AND每个数字从 0 到 (n)^{1/2} - 1 .我想在 O(n) 中执行此操作时间,不能使用 XOR、OR、AND 运算。

具体来说,我可以计算X+1 AND Y吗?如果我知道X AND Y

附言- 此处假定 RAM 模型并对 < log(n) 进行运算(加、乘、除)比特数可以做到是常数时间。

最佳答案

是的。

从 [1x1] 网格开始:

H(-1) = [ 0 ]

然后应用递归:

H(i) = [ H(i-1)  H(i-1)
         H(i-1)  H(i-1)+(1 << i) ]

其中表示矩阵串联。即每次递归都会使每个维度的网格大小加倍。重复直到达到所需的大小。

关于计算 AND 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057216/

相关文章:

algorithm - 使用距离矩阵聚类对象

java - 使用java在base -2中创建二进制数组

处理歧义的算法或数据结构

algorithm - 多个循环是否与嵌套循环具有相同的复杂性?

algorithm - 枚举特定螺旋的零交叉点的最简洁方法

c - 运行时错误 - 生成素数数组的代码

c - 以下代码的时间复杂度

algorithm - n 组之间的最大交集

algorithm - 在 3D 对象的中心找到 2D 平面

algorithm - 如何迭代生成 de Bruijn 序列?