ฉันมีเมทริกซ์ A และ B แบบสมมาตร (รายการเกิดขึ้นร่วม) สองตัว และต้องการทราบว่าเมทริกซ์เหล่านี้อธิบายการเกิดร่วมกันแบบเดียวกันหรือไม่ โดยเปลี่ยนเฉพาะป้ายกำกับแถว/คอลัมน์เท่านั้น (ต้องใช้การเรียงสับเปลี่ยนเดียวกันกับแถวและคอลัมน์เพื่อรักษาคุณสมบัติสมมาตร/การเกิดขึ้นร่วม)
ตัวอย่างเช่น เมทริกซ์ทั้งสองนี้ควรจะเท่ากันในการทดสอบของฉัน:
a = np.array([
#1 #2 #3 #4 #5 #6 #7
[0, 1, 1, 0, 0, 0, 1], #1
[1, 0, 1, 2, 1, 1, 2], #2
[1, 1, 0, 0, 0, 0, 1], #3
[0, 2, 0, 0, 4, 0, 4], #4
[0, 1, 0, 4, 0, 1, 2], #5
[0, 1, 0, 0, 1, 0, 0], #6
[1, 2, 1, 4, 2, 0, 0] #7
])
b = np.array([
#5 #7 #1,3#3,1#2 #4 #6
[0, 2, 0, 0, 1, 4, 1], #5
[2, 0, 1, 1, 2, 4, 0], #7
[0, 1, 0, 1, 1, 0, 0], #1,3 could be either
[0, 1, 1, 0, 1, 0, 0], #1,3 could be either
[1, 2, 1, 1, 0, 2, 1], #2
[4, 4, 0, 0, 2, 0, 0], #4
[1, 0, 0, 0, 1, 0, 0] #6
])
ขณะนี้ฉันทดสอบว่าค่าลักษณะเฉพาะเหมือนกันหรือไม่โดยใช้ numpy.linalg.eigvals
(ฉันไม่แน่ใจด้วยซ้ำว่านี่เป็นเงื่อนไขที่เพียงพอ) แต่ฉันต้องการค้นหาการทดสอบที่ไม่เกี่ยวข้องกับความแม่นยำเชิงตัวเลข เนื่องจากฉันกำลังจัดการกับจำนวนเต็มที่นี่
b
โดยไม่รู้ดัชนี[5, 7, 1, 3, 2, 4, 6]
ได้อย่างไรตั้งแต่แรก - person Andreas K.   schedule 29.10.2018