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

bitmap - 位对齐,8-bools-in-1

我正在尝试编译以下代码:

但是第 (1) 行没有编译,位对齐数组的语法是什么?

0 投票
1 回答
3207 浏览

arrays - 找到最接近给定数字的数组的三个元素之和的渐近最优方法

在回答这个问题时,John Feminella 说:

如果您真的很喜欢,可以通过将每个整数表示为一个位向量并执行快速傅立叶变换,以二次方的方式执行此操作,但这超出了此答案的范围。

解决该问题中描述的问题的渐近最优方法是什么?

0 投票
1 回答
1429 浏览

c# - 将 Bitvector64.Section 转换为 Bitvector32

我已经为 BitVector64 创建了 mysec 变量。对于小于 8 的版本,我想使用 BitVector32 生成值

我现在需要什么

  1. Mysect2 在 BitVector64.Section 中有值。我需要将显式转换为 BitVector32.Section 并传递参数。

以下转换对我不起作用

  1. 将获取 mysect3 的 BItVector32.Section 中的值需要转换为 BitVector64.Section

以下转换对我不起作用

或者

0 投票
3 回答
1056 浏览

algorithm - 如何在不使用任何移位的情况下计算正位数?

在前一段时间的一次工作面试中,我被要求计算位向量结构(如无符号整数或长整数)中正数(即设置为“1”)的位数。我的解决方案在 C# 中相当简单:

然后我被要求在不使用不使用任何移位的情况下解决任务:既不是显式的(如“<<”或“>>”)也不是隐式的(如乘以 2)。使用 2 的潜在行(如 0、1、2、4、8、16 等)的“蛮力”解决方案也不行。

有人知道这样的算法吗?

据我了解,它应该是一种或多或少的通用算法,它不依赖于输入位向量的大小。允许所有其他按位运算和任何数学函数。

0 投票
2 回答
1223 浏览

z3 - 在位向量算术的决策过程中使用术语重写

我正在从事一个项目,其重点是使用术语重写来解决/简化固定大小的位向量算术问题,这对于一些决策过程(例如基于位爆破的决策过程)的前一步很有用。重写这个术语可能完全解决问题,或者产生一个更简单的等效问题,因此两者的结合可以带来相当大的加速。

我知道许多 SMT 求解器都实施了这种策略(例如 Boolector、Beaver、Alt-Ergo 或 Z3),但很难找到详细描述这些重写步骤的论文/技术报告/等。一般来说,我只找到作者在几段中描述这种简化步骤的论文。我想找到一些详细解释术语重写使用的文档:提供规则示例,讨论 AC 重写和/或其他等式公理的便利性,重写策略的使用等。

目前,我刚刚找到了技术报告A Decision Procedure for Fixed-Width Bit-Vectors,它描述了 CVC Lite 执行的规范化/简化步骤,我想找到更多这样的技术报告!我还找到了一张关于STP 中术语重写的海报,但这只是一个简短的总结。

我已经访问了那些 SMT 求解器的网站,并在他们的出版物页面中进行了搜索...

我将不胜感激任何参考或任何解释如何在当前版本的知名 SMT 求解器中使用术语重写。我对 Z3 特别感兴趣,因为它看起来拥有最智能的简化阶段之一。例如,Z3 3.* 引入了一个新的位向量决策过程,但不幸的是,我找不到任何描述它的论文。

0 投票
2 回答
567 浏览

c++ - C++ 快速位集短路按位运算

一个演示问题:给定两个std::bitset<N>s,a并检查两个和b中是否设置了任何位。ab

这个问题有两个相当明显的解决方案。这很糟糕,因为它创建了一个新的临时位集,并将值复制到各种地方,只是为了把它们扔掉。

这个解决方案很糟糕,因为它一次只运行一点,这不太理想:

理想情况下,我可以做这样的事情,存储在哪里block_typeuint32_t任何类型bitset

有没有一种简单的方法可以做到这一点?

0 投票
2 回答
25552 浏览

c++ - C++中的位向量

最近我听说了位向量,但我真的找不到关于这个主题的任何有用的信息或教程。你能推荐一本书或一个关于如何实现你自己的位向量类的快速教程吗?谢谢你。

---/// 我无法发布自己问题的答案,所以我决定编辑这篇文章。这是我刚刚发现的内容:“游戏程序员的数据结构 - Ron Penton 和 Andre Lamothe”。第 4 章,位向量。这本书对位向量进行了详尽的解释,以及如何自己制作位向量类。玩得开心。

0 投票
12 回答
71869 浏览

java - 解释使用位向量来确定是否所有字符都是唯一的

我对位向量如何工作感到困惑(对位向量不太熟悉)。这是给出的代码。有人可以帮我完成这个吗?

特别是在checker做什么?

0 投票
2 回答
284 浏览

python - 操作长串位的数据结构

在 Python 中,什么是最好的n位数据结构(n大约 10000),在这种数据结构上使用其他此类数据结构执行通常的二进制操作(、、、)是&快速|^

0 投票
5 回答
1447 浏览

c# - 快速创建 32 位哈希码,唯一标识由(大部分)原始值组成的结构

编辑:64 位或 128 位也可以。由于某种原因,我的大脑刚刚跳到 32 位,以为这就足够了。

我有一个结构,主要由数值(int、decimal)和 3 个字符串组成,每个字符串不超过 12 个字母字符。我正在尝试创建一个可以用作哈希码的整数值,并尝试快速创建它。一些数值也可以为空。

似乎 BitVector32 或 BitArray 将是用于此努力的有用实体,但我只是不确定如何在此任务中使它们符合我的意愿。我的结构包含 3 个字符串、12 个小数(其中 7 个可以为空)和 4 个整数。

为了简化我的用例,假设您有以下结构:

我知道我可以获得每个值的数字标识符。从数值的角度来看,MyDecimal 和 MyInt 当然是独一无二的。该字符串有一个 GetHashCode() 函数,该函数将返回一个通常唯一的值。

那么,每个都有一个数字标识符,是否可以生成一个唯一标识该结构的哈希码?例如,我可以每次比较 2 个包含相同值的不同 Foo,并获得相同的哈希码(无论应用程序域、重新启动应用程序、一天中的时间、木星卫星的对齐方式等)。

哈希将是稀疏的,因此我预计我的用例不会发生冲突。

有任何想法吗?我第一次运行它时,我将所有内容都转换为字符串表示形式,将其连接起来,并使用内置的 GetHashCode() 但这似乎非常……低效。

编辑:更多背景信息。结构数据被传递到 web 客户端,客户端对包含的值、字符串构造等进行大量计算以重新渲染页面。前面提到的 19 个字段结构代表一个信息单元,每个页面可以有多个单元。我想对渲染结果进行一些客户端缓存,因此如果我从服务器看到相同的哈希标识符,我可以快速重新渲染一个单元,而无需在客户端重新计算。JavaScript 数值都是 64 位的,所以我想我的 32 位约束是人为的和限制性的。64 位可以工作,或者如果我可以在服务器上将它分成两个 64 位值,我想甚至是 128 位。