问题标签 [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 回答
53 浏览

types - 为什么 CFBit 被定义为 UInt32?

Apple将 CFBit 记录为 UInt32,但我不知道为什么。如果每个位都用 32定义,这不会破坏使用向量的目的吗?我错过了什么吗?

0 投票
1 回答
1729 浏览

generics - 对位向量使用泛型时,不能应用二元运算 !=

我正在实现一个 Bit Vector 类作为练习,但是只知道 Rust 不到一周,我遇到了以下代码的麻烦:

这个想法S可以是例如u8, u16, , 之一u32u64usize确保将其设置为0in创建一个由全零组成的with_capacity位值。S

我得到的错误如下:

lib.rs:27:10: 27:50 错误:二进制操作!=不能应用于类型<S as std::ops::BitAnd<usize>>::Output[E0369]
lib.rs:27 (self.data[data_index] & (1 << remaining)) != 0
^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib.rs:27:10:27:50 帮助:运行rustc --explain E0369查看详细说明
lib.rs:27:10: 27:50 注意:lib.rs: 27 (self.data[ std::cmp::PartialEqdata_index <S as std::ops::BitAnd<usize>>::Output
] & (1 << remaining)) != 0 ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
错误:由于先前的错误而中止
错误:无法编译bit-vector.

0 投票
1 回答
655 浏览

c++ - 在 C++ 复杂性和实现中选择位向量

我正在实现一个矩阵缩减算法,我是一名数学学生。显然我已经在互联网上搜索和阅读,但没有找到我正在寻找的东西(我在最后列出了我找到的内容和我读过的文件。)

问题的快速概述:

  • 位向量 b 具有 FIXED LENGTH N。

  • b 每一步都发生变化(可能仅在几个索引处(大多数时候)或在相当多的索引处(从 1/10 到 1/3),这仅在约 10% 的情况下)。

  • 我已经有一个稀疏实现,现在我想使用位向量的一些智能实现对其进行编码。

    /li>

我需要的是:

  • 快速设置 b[i]=1 或 =0(可能为 O(1))
  • 在每一步快速获取索引集I(绝对不超过 O(logN),理想情况下为 O(1))
  • 一个允许它的 C++ 库
  • 文件/文件

有什么会很高兴:

  • 一种快速获取“最低”的方法(最后一个索引设置为 1,即 select(rank(b)),如果两个操作都很快 (O(1)))

我不需要的是:

  • 节省空间
  • 压缩数据

我一直在使用 Simon Gog 等人的库 Sdsl 2.0。(https://github.com/simongog/sdsl-lite)但选择结构

初始化的成本为 O(n),每个查询的成本为 O(1),但不“遵循” b 中的更改(对吗??我还没有找到任何非常具体的内容),这意味着它需要在修改后的每一步。

我读过的论文是:“Fast, Small, Simple Rank/Select on Bitmaps”(G. Navarro 和 E. Providel)和“Practical Entropy-Compressed Rank/Select Dictionary”(D. Okanohara K. Sadakane)和 I将不胜感激任何与 C++ 中可靠实现的链接(如果结构满足我的要求)

我在 stackexchange 上找到的关于类似主题的东西没有帮助:

很抱歉这个冗长的问题,我希望我能解释我需要什么以及我找到它的决心。我仍然对与位向量相关的各种事情感到非常困惑,这绝对不是我的专业领域,所以任何澄清都值得赞赏。

提前致谢。

0 投票
2 回答
984 浏览

swift - 将位索引数组转换为 OptionSet

我正在尝试编写一个辅助函数,它将位索引数组转换为符合 OptionSet 的类。

这无法编译:

我也尝试过使用 RawValue:

这也不起作用:

这可以做到吗?我需要在 T 上添加额外的约束吗?

我知道可以重写此函数以使用具体类型,但如果可能,我想保持它的通用性。

0 投票
1 回答
86 浏览

python - 位向量策略导致 Z3Py 中的退出代码 139

这是一个简单的位向量问题:

Python 崩溃并显示错误代码 139。请注意,这不是我真正的问题,所以我必须smt在我的项目中使用位向量策略,尽管它在策略甚至策略上没有任何问题qfbv

0 投票
1 回答
601 浏览

java - 在java中将字符串转换为位向量

我想根据字符位值(用户指定)将字符串转换为其对应的位向量。我正在处理基因组字符串,其中我只有 4 个字符,即 A、G、C、T。我想用java中的以下位值来表示它们

现在给定一个字符串“AGGT”,那么它对应的位值应该是 01111100。我尝试过如下操作:

我究竟做错了什么?如何以正确的方式做到这一点。?

0 投票
1 回答
150 浏览

ocaml - Z3 的 Unsat 核心(版本 4)

去年左右我一直在使用 Z3 4.0 版的 Ocaml API,主要是位向量理论。现在我需要在执行 Z3.solver_check 后提取 unsat 核心,不幸的是版本 4 没有这种能力。我可以重写以使用假设来代表公式中的每个位向量方程,然后得到未饱和的核心,但这是代码的关键部分,它可能会影响整体性能。

有没有办法在不经过版本 4 的假设的情况下获得不饱和的核心?长期的解决方案当然是迁移到最新版本,但如果有一个破坏性较小的解决方案,那就太好了。例如,有没有办法从 unsat 的证明(由 Z3.solver_get_proof 返回)中提取 unsat core?

谢谢!

0 投票
1 回答
59 浏览

python - BitVector 操作不可能

我想对两个 BitVector 执行异或操作。在尝试将其中一个字符串转换为 bitVector 以进行异或操作时,出现以下错误:

我怎样才能绕过这个问题?我只想对两个表达式进行异或运算,但其中一个是字符串,需要先将其转换为位向量,对吗?但是,尝试将字符串转换为 BitVector 会出现上述错误。

其中 variable 是字符串,to_be_xored 是所需的位向量。

0 投票
2 回答
304 浏览

python - BitVector 性能问题

我需要在加密方案中使用位进行操作,但是,当我将变量和函数转换为 BitVector(bitstring/int/textstrings="") 时,结果是一个非常长的位向量,有时长度为数千。现在,这大大减慢了我对这些 BitVectors 的加密和操作。我该如何克服呢?:(

我使用 BitVector 的方式示例:

Edit1:例如,self.bc.encrypt(msgxored, key)只有 ~300 位,但是encr1 = BitVector.BitVector(textstring = self.bc.encrypt(msgxored, key))~3000 位!

0 投票
0 回答
115 浏览

python - BitVector 中的模数

BitVector 中的模数是什么?我没有在网上找到任何东西来解释它的作用。我尝试将其设置为更大的数字,这样它就不会影响我在 GF $2^256$ 中的计算

在文档中,模数是

其中十进制的位串是 286。