10得票2回答
比特向量算术决策中的术语重写使用

我正在从事一个项目,其重点是使用术语重写来解决/简化固定大小位向量算术问题,这是在进行基于比特位拆分的决策过程之前进行的有用步骤。术语重写可以解决问题,或者产生一个更简单的等价问题,因此两者的结合可以显著提高速度。 我知道许多SMT求解器实现了这种策略(例如Boolector、Beaver、...

10得票2回答
C++ 中的位向量

最近我听说过位向量,但是我无法在这个主题上找到任何有用的信息或教程。你能否建议一本书或一个快速教程,以便学习如何实现自己的位向量类呢?谢谢。 ---/// 我不能回答自己的问题,所以我决定编辑这个帖子。我刚刚发现了一本书:"游戏程序员数据结构 - Ron Penton和Andre Lamoth...

10得票8回答
Java:稀疏位向量

Java中是否有一些知名的库用于稀疏位向量? (同时,是否有关于何时使用稀疏位向量与 java.util.BitSet 的指导方针?)

9得票7回答
使用不使用额外数据结构和不假设字符串中只有小写字母的情况下,确定一个字符串是否具有所有唯一字符

这是Gayle Laakmann McDowell的Cracking the Coding Interview书籍中的一个问题: 实现一种算法来确定字符串是否具有所有唯一字符。如果不能使用其他数据结构怎么办? 作者写道: 我们可以通过使用位向量来减少一点空间使用。在下面的代码中,我们将假...

8得票1回答
使用泛型时,不能将二元运算符!=应用于位向量。

我正在实现一个位向量类作为练习,但是我只学了不到一周的Rust,所以在以下代码中遇到了问题: use std::cmp::Eq; use std::ops::BitAnd; use std::ops::Index; use std::ops::Not; struct BitVector&l...

8得票2回答
C++快速位集短路位运算

一个演示问题:给定两个std::bitset<N>,a和b,检查是否在a和b中都设置了任何位。 这个问题有两个相当明显的解决方案。这很糟糕,因为它创建了一个新的临时位集,并将值复制到各种地方,然后扔掉它们。 template <size_t N> bool any_...

8得票5回答
C/C++ 位数组或位向量

我正在学习C/C++编程,遇到了“位数组”或“位向量”的用法。我不理解它们的目的是什么?以下是我的疑问- 它们用作布尔标志吗? 可以使用int数组代替吗?(当然会更消耗内存,但是...) 什么是“位掩码”概念? 如果位掩码是一种简单的位操作,用于获取适当的标志,那么如何为它们编写程序?与十...

7得票1回答
在Perl中,如何计算具有高于2_147_483_639位设置的位向量中的位数?

Perl在处理二进制字符串/向量方面非常优秀。设置位(bit)就像这样简单: vec($bit_string, 123, 1) = 1; 获取设置位的数量非常快 $count = unpack("%32b*", $bit_string); 但是,如果你设置的位数超过了2_147_4...

7得票1回答
回文排列(Cracking the Coding Interview 1.4)

我有些困惑这两个函数中的位逻辑。 我不知道为什么要检查条件(bitVector & mask) == 0。 当条件满足时,为什么要将bitVector与mask进行OR运算,否则要将bitVector与~mask进行AND运算? 为什么存在一种属性,可以“通过从整数中减去1并将其与...

7得票3回答
快速搜索位数组中连续设置/清除位的代码?

有没有一些相当快速的代码可以帮助我快速搜索一个大的位图(几兆字节),以查找连续的零或一的位段? 通过“相当快速”,我的意思是指能够利用机器字长并同时比较整个字,而不是进行可怕缓慢的逐位分析(例如使用vector<bool>进行的分析)。 这对于例如搜索卷的位图以查找空闲空间(用...