jjzjj

nextSetBit

全部标签

java - 用高效的加入和满足操作来代表反链

一些信息我正在开发一个适用于基本集合和反链的程序。Antichains是集合幂集的子集,因此该子集中没有两个元素(集)是该子集中另一个元素(集)的子集。例如{{1},{1,2}}不是反链,因为{1}⊆{1,2}。反链A和B上的一些最重要的操作可以定义为a.join(b)=sup(a∪b)a.meet(b)=sup({X∩Y|X∈aandY∈b})其中sup是supremum反链的,意味着比给定集合大的最小反链。到目前为止的表现基本集由long表示,类似于位数组。这意味着集合中的每个元素都由位数组中的1表示。例如集合{1,2,3}用7(位数组111)表示,集合{1,2,4}用11(位数组

java - 获取 BitSet 中集合位的所有 Index

我正在寻找一种快速算法,为我提供BitSet对象中设置位的所有索引。这很慢:BitSetbitSet=...Collectionindexes=newArrayList(bitSet.cardinality());intnextSetBit=bitSet.nextSetBit(0);for(inti=0;i感谢任何帮助! 最佳答案 根本不需要使用bitSet.cardinality():for(inti=bitSet.nextSetBit(0);i!=-1;i=bitSet.nextSetBit(i+1)){indexes.add(