Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาเมทริกซ์ดั้งเดิมเมื่อกำหนดองค์ประกอบที่ใหญ่ที่สุดในแถวและคอลัมน์ใน Python


สมมติว่าเรามีสองอาร์เรย์ A และ B ขนาด N และ M ตามลำดับ และเรายังมีเมทริกซ์ไบนารี N X M หนึ่งรายการ โดยที่ 1 แสดงว่ามีเมทริกซ์จำนวนเต็มบวกในเมทริกซ์ดั้งเดิม และ 0 หมายความว่า ตำแหน่งถือ 0 ไว้ในเมทริกซ์เดิมด้วย เราต้องสร้างเมทริกซ์ดั้งเดิมเพื่อให้ A[i] หมายถึงองค์ประกอบที่ใหญ่ที่สุดในแถว ith และ B[j] หมายถึงองค์ประกอบที่ใหญ่ที่สุดในคอลัมน์ jth

ดังนั้น หากอินพุตเป็นเมทริกซ์ A =[4, 2, 3], B =[3, 1, 0, 0, 4, 0, 5] ผลลัพธ์จะเป็นเมทริกซ์

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • N :=ขนาด A

  • M :=ขนาด B

  • สำหรับผมอยู่ในช่วง 0 ถึง N ทำ

    • สำหรับ j ในช่วง 0 ถึง M ให้ทำ

      • ถ้า mat[i, j] เหมือนกับ 1 แล้ว

        • แสดงขั้นต่ำของ A[i] และ B[j]

      • มิฉะนั้น

        • พิมพ์ขึ้นบรรทัดใหม่

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def print_original_mat(A, B, mat) :N =len(A) M =len(B) for i in range(N) :สำหรับ j in range(M) :if (mat[i][j] ==1) :print(min(A[i], B[j]), end =" ") else :print(0, end =" ") print()A =[4, 2, 3]B =[3, 1, 0, 0, 4, 0, 5]เสื่อ =[ [1, 0, 0, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0]]print_original_mat(A, B, mat);

อินพุต

<ก่อนหน้า>[4, 2, 3],[3, 1, 0, 0, 4, 0, 5],[1, 0, 0, 0, 1, 0, 1],[0, 0, 1 , 0, 0, 1, 1],[1, 1, 0, 1, 1, 0, 0]]

ผลลัพธ์

3 0 0 0 4 0 40 0 ​​0 0 0 0 23 1 0 0 3 0 0