在一组C+1
整数值{0,1,...,C}
中。如何索引对{00,01,...,0C, 11,12,...,1C,22,...2C,...,CC}
?我了解到ab
与a <= b
对的总数为(C+1)(C+2)/2
对。我可以找出一种在ab
时将对i
映射到它们的索引a <= c/2
的方法,但是该映射不适用于对的另一半。
是否有一个简单的表达式可以将成对的ab
映射到索引i
?这个问题与Indexing the (unordered) pairs of a set非常相似,但是在那里不允许重复。
答案 0 :(得分:1)
经过一番数学运算,我得到了一个表达式。
表达式为i = a(C+1) - a(a-1)/2 + b - a
。我会在有时间在乳胶上键入内容后立即发布数学运算,但其想法是根据a
和C
计算已经计算了多少对,并且它们的三角和不同(前两个词),然后根据b
和a
添加缺失的内容。