Computer >> Máy Tính >  >> Lập trình >> Python

Đếm số phủ định trong ma trận được sắp xếp theo cột và khôn ngoan bằng cách sử dụng Python?

Trong phần này, chúng ta sẽ xem một chương trình python tính số âm trong ma trận được sắp xếp theo hàng và theo cột với giải pháp tối ưu.

Mảng được sắp xếp theo hàng và theo cột có nghĩa là, mỗi giá trị tại bất kỳ chỉ mục nào đều nhỏ hoặc bằng giá trị tại chỉ mục trong cột tiếp theo và hàng tiếp theo.

Ví dụ trong ma trận M

dưới đây
M = [[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]]

Trong ma trận M ở trên, cột đầu tiên của hàng đầu tiên là -40, nhỏ hơn giá trị ở giá trị cột tiếp theo trong cùng một hàng, tức là -12 và cũng nhỏ hơn giá trị ở hàng tiếp theo trong cùng một cột, tức là -20, v.v. trên.

Ví dụ 2

# The matrix must be sorted in ascending order. If not, the algorithm will not work properly
matrix = [
   [-40, -12, 1, 5],
   [-20, -2, 5, 15],
   [-22, -1, 13, 18],
   [-12, 0, 15, 38]]
# To obtain the number of row
rowCount = len(matrix)
columnCount = 0

# To obtain the number of column
for i in matrix[0]:
   columnCount += 1
   a = 0
   b = 0
   count_Of_Negative_Integer = 0
while a < rowCount and b < columnCount:
   if matrix[a][b] >= 0:
      a += 1
      b = 0
   else:
      count_Of_Negative_Integer += 1
   b += 1
print("Count of Negative Integers in sorted Matrix is: ",count_Of_Negative_Integer)

Kết quả

Count of Negative Integers in sorted Matrix is: 7

Trong chương trình trên,

  • > =0:đầu tiên chúng tôi cố gắng tìm số lượng số nguyên âm, nhỏ hơn 0.

  • Bởi vì trong chương trình trên, chúng tôi đang cố gắng lấy số nguyên âm, tuy nhiên, có thể sử dụng cùng một chương trình để tìm số lượng số nguyên nhỏ hơn bất kỳ số nguyên cụ thể nào (n). Ví dụ:để tìm số lượng số nguyên nhỏ hơn hoặc bằng 5 bằng cách sử dụng> 5.