给定n 个整数 id,我希望将所有可能的最多 k个 id 的集合链接到一个常数值。我正在寻找一种将集合(例如 {1, 5}, {1, 3, 5} 和 {1, 2, 3, 4, 5, 6, 7})转换为唯一值的方法。
保证:
- n < 100 和 k < 10(同样:集合大小将在 [1, k] 范围内)。
- id 的顺序无关紧要:{1, 5} == {5, 1}。
- 所有组合都是可能的,但有些可能被排除在外。
- 所有集合和值都是恒定的,并且只生成一次。没有删除或插入,没有值更新。
- 一旦生成,唯一发生的操作将是查找。
- 查找将是频繁且单向的(给定集合,查找值)。
- 无需对值进行排序(或以其他方式组织) 。
此外,如果“相邻”集合(删除一个 id、添加一个 id、交换一个 id 等)以及“至少包括该集合的所有集合”很容易到达,那将是很好的(但不是强制性的)。
有任何想法吗?