我试图将两个连续排序的整数集(具有可能不同数量的项)映射到保持线性间距的单个连续排序整数集。
e.g。 答:{1,2,3} B:{1,2,3,4} 可以映射到 C:{1,2,3,4,5,6,7} 通过 A:{1-> 1,2-> 4,3-> 7}和 B:{1-> 1,2-> 3,3-> 5,4-> 7}
每个人都可以手动完成这些操作,但我很难概括。
分解问题,我需要找到(1)输出集中的桶数和(2)输入 - >输出映射
我的解决方案在这里提供:
//输出C中有LCM(| A | -1,| B | -1)+1桶
int numBuckets = LCM( A.Count() - 1,B.Count() - 1)+ 1;
//将A中的元素映射到桶中 输出C
for(int i = 0; i< A.Count(); i ++)
{ mapping.Add(A.ElementAt(i)中, (i *((numBuckets - 1)/(A.Count() - 1)))的ToString()); }
答案 0 :(得分:0)
假设集合C的大小为 | C | = Nc ,对于集合A, | A | = Na 。然后,如果要将 A 映射到 C ,请让第一个元素相互映射,然后通过
跳过元素floor( (Nc-1)/(Na-1) )