|
@@ -83,6 +83,29 @@ def getitemIndexArray(itemIndex,m,n):
|
|
|
a[item]=indexNum
|
|
|
print("a=",a)
|
|
|
return a
|
|
|
+#获取单个组合的各边重复项及其位置
|
|
|
+def getitemIndexArrayAndIndex(itemIndex,m,n):
|
|
|
+ a = {};
|
|
|
+ for item in range(m):
|
|
|
+ index = 0;
|
|
|
+ indexList = [];
|
|
|
+ while(index < n):
|
|
|
+ if(itemIndex[index] == str(item)):
|
|
|
+ indexList.append(index)
|
|
|
+ index = index+1
|
|
|
+ a[item]=indexList
|
|
|
+ print("a=",a)
|
|
|
+ return a
|
|
|
+#如[0, 1, 3]转成6个位置[0,1,3],[0,3,1],[1,0,3],[1,3,0],[3,0,1],[3,1,0]
|
|
|
+def getPositionArray(positions):
|
|
|
+ newPositons = []
|
|
|
+ jiechen_array = jiechenarray(len(positions))
|
|
|
+ for item in jiechen_array:
|
|
|
+ m_position = []
|
|
|
+ for item_item in item:
|
|
|
+ m_position.append(positions[item_item-1])
|
|
|
+ newPositons.append(m_position)
|
|
|
+ return newPositons
|
|
|
#获取单个组合的各边重复项及重复项顺序
|
|
|
def getitemIndexArrayAndPosition(itemIndex,m,n):
|
|
|
a = getitemIndexArray(itemIndex,m,n)
|
|
@@ -94,6 +117,28 @@ def getitemIndexArrayAndPosition(itemIndex,m,n):
|
|
|
a[item] = newItem
|
|
|
print("getitemIndexArrayAndPosition=",a)
|
|
|
return a
|
|
|
+#获取模板的插入顺序,必定大于1个
|
|
|
+def getModuleIndex(itemIndex,m,n):
|
|
|
+ indexArrayAndIndex = getitemIndexArrayAndIndex(itemIndex,m,n)
|
|
|
+ positions=[]
|
|
|
+ for item in indexArrayAndIndex:
|
|
|
+ item1 = indexArrayAndIndex[item]
|
|
|
+ if(len(item1)>0):
|
|
|
+ position_array = getPositionArray(item1)
|
|
|
+ if(len(positions) == 0):
|
|
|
+ positions= position_array
|
|
|
+ else:
|
|
|
+ temp_positions=[]
|
|
|
+ for temp_item in positions:
|
|
|
+ for this_temp_item in position_array:
|
|
|
+ new_temp_item = temp_item.copy()
|
|
|
+ for item1_item in item1:
|
|
|
+ item1_item_index=item1.index(item1_item)
|
|
|
+ new_temp_item.insert(this_temp_item[item1_item_index],item1_item)
|
|
|
+ temp_positions.append(new_temp_item)
|
|
|
+ positions=temp_positions
|
|
|
+ return positions
|
|
|
+
|
|
|
#获取单个组合的各边重复项--包含各项位置
|
|
|
# 如{0: {0: 0, 1: {}}, 1: {0: 0, 1: {}}, 2: {0: 2, 1: {0: 0, 1: 4}}, 3: {0: 3, 1: {0: 1, 1: 2, 2: 3}}, 4: {0: 0, 1: {}}}
|
|
|
def getitemIndexAndPositionArray(itemIndex, m, n):
|
|
@@ -129,9 +174,12 @@ def getitemIndexArrayNumber(itemIndex,m,n):
|
|
|
# getAllPosition(3, 3)
|
|
|
# getAllArrayNumber(4,3)
|
|
|
# getitemIndexArray("11213",5,5)
|
|
|
+# getitemIndexArrayAndIndex("11213",5,5)
|
|
|
+print(getModuleIndex("11212",5,5))
|
|
|
# getitemIndexArrayAndPosition("11213",5,5)
|
|
|
# getitemIndexAndPositionArray("113", 4, 3)
|
|
|
# number = getitemIndexArrayNumber("11143",5,5)
|
|
|
# print(number)
|
|
|
# getAllArrayNumber(11,2)
|
|
|
-# print(jiechenarray(3))
|
|
|
+# print(jiechenarray(3))
|
|
|
+# print(getPositionArray([0,3,4]))
|