小编Kyl*_*sen的帖子

N组的最大交集,具有忽略某些集合的能力(设置压缩)

假设您有N组未分类的字符,这些组之间有共同的字符.我想从这些集合中分解出尽可能多的字符以使它们变小.但是将字符分解出来有一个约束:字符必须在你从N中选择的M个集合的交集中.这有点像无损集合压缩算法.以下示例是有序集,但这是为了便于阅读.不要假设将订购套装.

一个简单的例子:

S1 = a b c d
S2 = a b c e f
S3 = a f g
Run Code Online (Sandbox Code Playgroud)

答案是只交叉S1和S2并将因子分解出来:ab c.这会减少6个字符,其中任何其他交集组合将减少.

一个棘手的例子:

S1 = a b c d e f g h i
S2 = j k l m n
S3 = j k l o p q
S4 = j k l
S5 = a b c d
Run Code Online (Sandbox Code Playgroud)

答案是忽略集合S1和S5并将剩余集合S2,S3和S4的交集得到:jk l.

abcd不正确的原因是因为当你将这些字符从集合中分解出来时,剩下19个字符,而当你考虑jk和l out时,只剩下18个字符.

是否有一种算法可以比指数时间更快地解决这类问题?您似乎必须测试集合的幂集中的每个集合的交集({},{S1},{S2},{S3},{S1,S2},{S1,S3},{S2 ,S3},{S1,S2,S3}) - 8个交点来计算是否只有3组.

PS这不是一个紧迫的问题,但我认为这是一个我遇到的有趣问题.

algorithm intersection set

8
推荐指数
1
解决办法
260
查看次数

您如何在Three.js中更新制服?

我不得不重写我的问题,因为以前我问错了事。

我的意思是问,如何在Three.js中更新制服?

javascript shader three.js

5
推荐指数
2
解决办法
5386
查看次数

标签 统计

algorithm ×1

intersection ×1

javascript ×1

set ×1

shader ×1

three.js ×1