假设我们有一组对象。这些对象中的每一个都有一个字母,一个数字和一个形状。该数据集可能看起来像这样:
我想编写一种算法,将这些算法归类为“容器”。这样他们就可以显示出场景中涵盖了哪些可能性,还有哪些需要覆盖。到最后,您将拥有一组垃圾箱。这样您就可以访问已组织到其中的所有对象。
所以有组织的集合看起来像这样:
Bin 1: [ (A, B) , (0), (Circle, Square) ] *(grouping line 1, 2, 7, 8)*
Bin 2: [ (A) , (0), (Triangle) ]
Bin 3: [ (A), (1), (Circle, Square) ] *(grouping line 5, 6)*
Bin 4: [ (B), (1), (Circle) ]
Needed: [ (B), (0), (Triangle) ]
Needed: [ (B), (1), (Square, Triangle) ]
有人知道如何解决这个问题吗?或者如何处理将一根线插入多个插槽的问题?
例如,此集合可以将第5行分组为
[ (A, B), (1), (Circle) ]
或[(A), (1), (Circle, Square) ]
都有效。
所以也许必须进行冗余检查?也许要检查一下对象是否已包含在Bin中?
任何帮助,想法或讨论将不胜感激。
答案 0 :(得分:0)
根本不组织到垃圾箱中;让三元组展开。
首先,生成所有必需组合的参考列表:{A,B} x {0,1} x {圆形,正方形,三角形}。 现在,简单地计算参考列表和输入列表之间的设置差异。剩下的就是您尚未涵盖的一组组合。