0

我有 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 的第一个元素的最后一个字符映射到组合的第一个字符,组合的第二个字符映射到集合 B 中所有元素的第一个字符。

这必须对所有元素进行。

棘手的部分是,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 后,CI 想要计算从 a' 到 d' 的最短距离。但要实现这一点,我需要映射这些元素。

任何人都可以告诉我如何实现这一点,通过考虑每个数组的大小可以随给定的 n 变化。

4

0 回答 0