问题标签 [hammingweight]
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.
ruby - 如何根据Ruby中1的数量创建给定二进制数数组的子数组?
例子:
这是二进制数数组:
a = [001, 010, 100, 011, 101, 110, 111, 1000, 1001, 1010]
我想要如下输出:
[ [ 001, 010, 100, 1000 ], [ 011, 101, 110, 1001, 1010 ], [ 111 ] ]
任何人都可以帮助我如何在 ruby 中实现它吗?
c++ - 生成具有偶数汉明权重的整数(popcount)c ++
我想有效地(通过使用位黑客)生成给定数字 k 的所有整数,以便它们具有均匀的汉明权重,而无需明确计算它们的汉明权重。对我来说,按升序还是降序完成并不重要。
如果我可以生成所有具有均匀汉明权重的整数,这些整数是 k 的子集(在格雷码意义上),那么一个奖励(相关任务)将是。
示例:输入-> k=14(二进制 1110)
全部输出-> 3 (0011), 5(0101), 6 (0110), 9 (1001), 10 (1010), 12 (1100)
输出子集-> 6 (0110), 10 (1010), 12 (1100)
使用 popcount 的示例代码:
使用 popcount 作为子集的示例代码:
permutation - 通过汉明权重枚举整数,模位移
我需要从如下所述的有序数组中采样整数。
设k
为正整数。
所有条目都是非负整数
[0,2^k)
列表开始于
0
- 汉明权重为 1 的所有(递增)整数模位移(即乘以 2)跟随。
- 汉明权重为 2 的所有(递增)整数模位移、跟随等。
的数组k=5
如下所示:
特别是,给定列表中的一个条目,我想通过算法推断下一个条目。
我知道这可以通过多种方式完成(例如,参见这个问题)。为了完整起见,这就是这些其他数组的样子,与上面的数组不同:
algorithm - (n 选择 k) 和长度为 n 且设置了 k 位的位串之间的双射
虽然我知道如何生成所有 ( n
choose k
) 大小n
的位串,位串完全k
设置为 1,但我正在努力寻找一个双射,它以和 ( choose )i
之间的数字作为输入,并在一个任意排序。1
n
k
i
显然,可以简单地枚举列表中的所有向量,然后输出列表的i
第 - 个条目,但不幸的是,这种方法对我的设置有很高的内存要求。
编辑:它也应该是一种有效的计算,计算每次调用双射的所有向量列表也不是一种选择。
c++ - 在最小时钟周期内执行 AVX2 VPXOR 和 popcount 的优化方式
我们必须对两个数组执行按位异或运算,每个数组包含 5 个 uint64_t(unsigned long long)元素,然后执行 1 的计数(pop count)。通过使用 AVX2 256 位宽 YMM 寄存器、AVX2 VPXOR 和 popcount 以在最小时钟周期内实现这一目标的优化方式是什么?
现在我们通过以下代码片段来做到这一点
我们在数组 A 和数组 B 中有 260 位。在最小时钟周期内执行 AVX2 VPXOR 和 popcount 的优化方法是什么。
x86 - 为什么我不应该捕获未定义指令异常而不是使用 CPUID?
假设我想使用可能不可用的指令。而且这条指令不是那些透明的回退,当它不可用时它是未定义的指令。popcnt
举例来说。
我可以不使用cpuid
只是尝试调用它吗?
如果失败,我将捕获异常,并将此信息保存在一个bool
变量中,然后将使用不同的分支。
当然会有性能损失,但只有一次。这种方法还有其他缺点吗?
simd - AVX512 中的人口数量
我一直在尝试在支持 AVX512 的机器上以及之前为 AVX2 优化过的代码上使用 _mm256_popcnt_epi64。
不幸的是,我遇到了找不到该功能的问题。然而,找到了相应的__m512i
等价物。该__m256i
功能是否已弃用?
assembly - 如何计算十进制数中有多少位是1?
我在 RISC-V RARS 1.3 应用程序中创建的这个程序旨在获取一个十进制数并计算该数字中有多少位。我正在测试的是十进制数 5,这个程序应该适用于我放在 t1 上的任何正数。这是我创建的代码。该程序旨在每当 AND 函数的结果不为 0 时添加一个计数器,但我遇到的问题是程序没有停止。这个问题有解决方案吗?
assembly - YASM 有没有办法检查单词中的特定数字?
如果我要尝试计算 dw 数据中 1 的数量,我会怎么做呢?我想将 1 的数量存储在内存总和中。我正在使用 EBE 以 64 位汇编语言进行编码。