【发布时间】:2011-08-14 11:43:09
【问题描述】:
我想有效解决以下问题。我得到了一组布尔值的 k 元组,我事先知道每个 k 元组中的每个值的一部分是正确的。例如,我可能有以下 4 元组,其中每个元组至少有 60% 的布尔值设置为 true:
(1, 0, 1, 0)
(1, 1, 0, 1)
(0, 0, 1, 0)
我有兴趣找到具有特定属性的索引集:如果我查看指定索引处的元组中的每个值,至少这些元组的给定部分具有相应的位集。例如,在上面的 4 元组集合中,我可以考虑集合 {0},因为如果您查看上述每个元组的第零个元素,其中三分之二是 1,而 2/3 ~= 66% > 60%。出于同样的原因,我也可以考虑集合 {2}。但是,我不能考虑 {1},因为在索引 1 处,只有三分之一的元组有 1,而 1/3 小于 60%。同样,我不能将 {0, 2} 用作集合,因为至少 60% 的元组同时设置了位 0 和 2 是不正确的。
我的目标是找到该属性适用的所有集合。有没有人有一个很好的算法来解决这个问题?
谢谢。
【问题讨论】:
-
不,这是一个非常重要的问题。但是,似乎没有经过深思熟虑。求解 {Pass, Fail} 值的单个向量然后扩展到这些值的集合可能更容易;这是扩展部分的表述不当。
-
对我来说问题描述很清楚:)。
-
Sergey - 对架构有什么要求吗?我觉得解决单个 cpu 的问题可能与 GPGPU 解决方案不同。
-
@templatetypedef 哇!感谢您重新格式化问题。难以置信!!!