置换阵列的映射

时间:2013-09-25 20:57:46

标签: javascript algorithm google-maps mapping permutation

我有3套/阵列。其中2个被置换为n∈{1,2,3,4}(例如n = 4→ABCD),第3个是2个元素的组合。以下是置换集A和B(它们是相同的):

  

ABCD ABDC ACBD ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD   CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA

这里的组合为n∈{1,2,3,4}(例如n = 4 - > AA AB AC AD ...)

  

AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD

所以这是输入。

3组/阵列的映射

我希望在不比较每个对象的内容的情况下组合这3个集合/数组,以获得如下输出:

  

[ABCD DA ABCD] [ABCD DA ABDC] [ABCD DA ACBD] [ABCD DA ACDB] [ABCD DA   ADBC] [ABCD DA ADCB] ....

对于集合A的第一个元素。因此,集合A的第一个元素的最后一个字符与组合的第一个字符映射,组合的第二个字符与集合中所有元素的第一个字符映射。乙

这必须与所有元素一起完成。

棘手的部分是,n不是静态的,设置为1,2,3或4.所以我需要一个考虑到这一点的函数。

映射后

集合中的每个元素都是一个描述路径的对象。该目标如下:

originRoute = { 
  a: google.maps.LatLng, 
  b: google.maps.LatLng, 
  c: google.maps.LatLng, 
  d: google.maps.LatLng, 
  distance: integer }; //Element of Set A
destinationRoute = {
  a': google.maps.LatLng,
  b': google.maps.LatLng,
  c': google.maps.LatLng,
  d': google.maps.LatLng,
  distance: integer }; //Element of Set B
connectionRoute = {
  originPeer: google.maps.LatLng,
  destinationPeer: google.maps.LatLng,
  distance: integer }; //Element of Combination

在映射路径A,B,C之后,我想计算从'到'd的最短距离。但要实现这一点,我需要映射这些元素。

任何人都可以给我一个如何实现这一目标,通过考虑每个数组的大小可以用给定的n来变化。

0 个答案:

没有答案