|
1
2
我在想一个不相交的集合数据结构,比如 union find 打开它的头(我们不是合并节点,而是拆分它们)。 算法:
创建阵列
然后所有不同的数字
示例:
所以
然后用不同的数字分开:
改进:
降低
具有
编辑: 根据j_random_hacker的评论进行编辑 |
|
|
2
1
你可以以空间为代价将愚蠢算法的通过组合起来。
生成一个名为
|
|
|
3
0
你可以给予 Principal Component Analysis 尝试一下。PCA有一些设计用于 binary 或更一般地 categorical 数据 |
|
|
4
0
由于有人将其显示为NP完全,对于大型人声,我怀疑你会比对整个可能性集合O((2 k -1) *n)。至少在最坏的情况下,在许多情况下,如您链接的论文中所述,一些启发式方法可能会有所帮助。这是你的“愚蠢”方法,推广到所有可能的基字符串,而不仅仅是长度为2的基。 然而,对于小型人声,我认为这样的方法会做得更好:
之后,你还需要包括任何不是最终接受的候选人的子集的个人信件。也许还有其他一些小的预订,比如未使用的字母(使用比特或所有可能的单词)。 考虑您的简单示例: 第一次传球给你a,abc,bc,bcd,de,d 第二传给你a,bc,d 记账给你a,bc,d,e 我没有证据证明这是正确的,但我认为直觉上这至少是朝着正确的方向发展的。优势在于使用单词,而不是暴力使用可能的候选者。如果有足够大的单词集,这种方法会变得很糟糕,但对于多达几百甚至几千个的词汇来说,我敢打赌这会很快。好的是,即使k值很大,它仍然有效。 如果你喜欢答案并给予奖励,我很乐意尝试用20行代码来解决:)并提出更令人信服的证据。对我来说似乎非常可行。 |
|
no one special · 32位整数缩放,无溢出 8 年前 |
|
|
Benn Tan · 比特操作:更难翻动硬币 8 年前 |
|
|
Ganesh Thampi · 使用位运算符将十进制转换为二进制 8 年前 |
|
|
Ganesh Thampi · 使用位的奇偶程序 8 年前 |
|
|
datapanda · 三维网格的莫顿反向编码 8 年前 |
|
|
rubyquartz · 交换无符号短整数的字节 8 年前 |
|
|
John Proctor · C中位的掩蔽范围 8 年前 |
|
|
Areg Sarvazyan · 从无符号int中提取位的函数 8 年前 |
|
|
user9505617 · 按位异或0xFFFFFFFF? 8 年前 |