问题标签 [bitvector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
549 浏览

python - TypeError:&:“NoneType”和“BitVector”不支持的操作数类型

这是python代码。

对于上面的代码,我得到了错误

如何使我的函数将参数作为 BitVector (因为这是我认为造成问题的原因

0 投票
0 回答
156 浏览

rust - 在 BitVec 中查找序列

我有一个大的 BitVec,我需要找到精确长度的设置/未设置位序列(即 n 个连续设置/未设置位)。我怎样才能做到这一点?我已经尝试过Iterators 和for循环,但我无法将它包装成一个通用函数。

更新:根据要求,提供更多信息。问题是我还没有找到方法

  • 有效地找到序列的位置
  • 把它变成一个通用函数

我的意思是,我最初研究的是形式fn find_sequence<A: PartialEq<A>>(v: &[A], value: A, how_many: usize) ...。不幸的是,还不能返回迭代器(因为闭包),所以这是第一个问题。第二,无法有效地找到职位,是我不清楚我必须执行什么才能实现我想要的。最初,我使用enumerate返回位置值元组,然后scan能够找到序列(即if x == val,更新状态等)。然后我尝试使用 for 循环,但我很清楚,我无法将它变成一个通用函数(因为how_many,它不允许为每个位置添加精确数量的 if 语句,x[0] == valx[1] == val.. .)。

0 投票
2 回答
209 浏览

c++ - 解释 std::vector作为位向量 - 高效算法?

我想解释

作为位向量,即 的 MSBnumbers[0]是第 1 位,的 MSBnumbers[1]是第 33 位,依此类推。我想在这个向量中找到所有的序列,并将相应的位置存储在数据结构中。(这里也将单个One定义为序列)

例如:我将值 15 和 112 存储在数字中。因此位 29 到 32 和位 58 到 60 等于 1。挑战是优化这个函数的运行时间。

这是我如何处理这个问题的想法:我想到了使用两个for循环。第一个循环遍历“数字”的元素(我们称之为 element_loop),而第二个循环用于计算单个元素中所有 One 的位置(我们称之为 bit_loop)。为此,我想到了检测序列的“上升沿”和“下降沿”。

在每个 bit_loop 循环开始时,将掩码初始化为十六进制。值0x80000000。使用此掩码,我检查第 1 位是否等于 1。如果是,则存储当前位置 (0)。接下来,使用二进制表示的掩码“ 10 00...”来检测下一个周期中的“下降沿”。如果否,则将掩码向右移动一位“ 01 00...”,以便在下一个周期中检测“上升沿”。(我只关心这两个粗体数字)

一旦检测到边缘,我就会存储当前位置并以适当的方式将掩码移动一位。因此,在 pos 之后。边缘(01)我切换到否定。边缘检测(10),反之亦然。在遍历 32 位无符号数时,我将所有边缘位置存储在某种向量中。这个向量可以是 2-dim。数组,第一列是一个序列的开始,第二列是序列的结束。此外,我需要对从一个元素到下一个元素的转换进行一些特殊处理。

这是我的一般问题:您如何看待这种方法?有没有办法更有效地处理这个问题?非常感谢您提前提供的帮助。

0 投票
1 回答
66 浏览

arrays - (方案)使用列表更改布尔数组中的值

我需要创建一个大小为 800000 的布尔值(0 或 1)数组。我还需要能够尽可能检查/更改索引处的值。我不能使用向量或命令set!

我正在查看文档并找到build-list[ 1 ]。所以我做了一个这样的零数组:

(define arrBool (build-list 800000 (lambda (x) (* x 0))))

我知道我可以使用list-ref[ 2 ] 访问索引。但是,我在文档中找不到有关如何更改该索引处的值的任何内容。例如,如果我想将0at 索引 27392 更改为 a 1,我将如何在不创建全新列表的情况下执行此操作?

任何帮助将不胜感激,谢谢!

0 投票
1 回答
370 浏览

logic - 使用命题逻辑求解方程

我正在寻找有关如何将数学方程编码为 cnf-sat 形式的想法,以便它们可以通过像 MiniSat 这样的开源 SAT 求解器来求解。

那么,我该如何转换:

3x + 4y - z = 14

-2x - 4z <= -6

x - 3y + z >= 15

成一个命题方程,可以使用 SAT Solvers 求解。

有什么建议,因为我很难过??

0 投票
1 回答
537 浏览

z3 - Z3 上的位向量算术

我正在尝试使用 Z3 来解决使用位向量算术的算术方程。我想知道是否有办法处理实数。例如,如果我可以指定一个不同于 #x1 的常数并改用实数。

0 投票
1 回答
82 浏览

c - 指定在 C 中使用的非常大的数字

我正在考虑使用大整数的一种方法,我认为是使用 Gmplib,我使用了一些小例子,但它可以使用像 2 ^ (2 ^ (2 ^ 1024)) 这样的数字吗?

我的问题是如何表示这个大数字,因为(不确定)计算器也可能会溢出。

0 投票
1 回答
783 浏览

python - 如何打包和解包 64 位数据?

我有一个 64 位的数据结构,如下所示:

HHHHHHHHHHHHHHHHGGGGGGGGGGGGGFFFEEEEDDDDCCCCCCCCCCCCBAAAAAAAAAAAA

A:12 位(无符号)
B:1 位
C:12 位(无符号)
D:4 位(无符号)
E:4 位(无符号)
F:3 位(无符号)
G:12 位(无符号)
H:16 位(未签名)

使用 Python,我试图确定我应该使用哪个模块(最好是原生 Python 3.x)。我正在查看BitVector,但无法弄清楚一些事情。

为了便于使用,我希望能够执行以下操作:

我不确定 BitVector 是否真的按照我想要的方式工作。无论我最终实现什么模块,数据结构都将封装在一个类中,该类通过属性 getter/setter 读取和写入结构。

我还将对某些位值使用常量(或枚举),并且能够使用以下内容设置映射掩码会很方便:

3.x 中是否有 Python 模块可以帮助我实现这个目标?如果 BitVector 将(或应该)工作,一些有用的提示(例如示例)将不胜感激。似乎 BitVector 想要将所有内容强制为 8 位格式,这对我的应用程序(恕我直言)来说并不理想。

0 投票
1 回答
287 浏览

filter - 比较番石榴布隆过滤器?

无论如何要比较一个布隆过滤器的元素是否存在于另一个布隆过滤器中。我知道您可以使用 .equals ,但这没有考虑,例如,如果我想要做的第二个 Bloom 过滤器中只有一些元素存在。

以某种方式比较设置的位?

0 投票
3 回答
7908 浏览

c++ - C++11 向量性能问题(带有代码示例)

我注意到在运行以下代码时,vector 比 bool 数组慢得多。

有什么方法可以让我vector<bool>更快吗?顺便说一句,两者std::vector::push_backstd::vector::emplace_back甚至比std::vector::assign.