Hướng dẫn write a python program to check if given array is monotonic? - viết chương trình python để kiểm tra xem mảng đã cho có đơn điệu không?

Cho một mảng một số nguyên chứa n. Nhiệm vụ là kiểm tra xem mảng có đơn điệu hay không. Một mảng là đơn điệu nếu nó là đơn điệu tăng hoặc đơn điệu giảm. Một mảng A là đơn điệu tăng nếu đối với tất cả tôiA containing n integers. The task is to check whether the array is Monotonic or not. An array is monotonic if it is either monotone increasing or monotone decreasing. An array A is monotone increasing if for all i <= j, A[i] <= A[j]

Một mảng A là đơn điệu giảm nếu với tất cả I = a [j]. & Nbsp;A[i] >= A[j]

Loại trả về: Giá trị Boolean, True True, nếu mảng đã cho A là đơn điệu khác trả về Sai False (không có dấu ngoặc kép). & NBSP; Boolean value, “True” if the given array A is monotonic else return “False” (without quotes). 

Examples:

Đầu vào: 6 5 4 4Output: Đúng 6 5 4 4
Output : true

Đầu vào: 5 15 20 10Output: Sai 5 15 20 10
Output : false

Cách tiếp cận: Sử dụng Extend () và Sort () Using extend() and sort()

  • Đầu tiên sao chép mảng đã cho vào hai mảng khác nhau bằng cách sử dụng Extend ()
  • Sắp xếp mảng đầu tiên theo thứ tự tăng dần bằng cách sử dụng sort ()
  • Sắp xếp mảng thứ hai theo thứ tự giảm dần bằng cách sử dụng sắp xếp (đảo ngược = true)
  • Nếu mảng đã cho bằng bất kỳ mảng nào thì mảng

Python3

def isMonotonic(A):

    x, y = [], []

    x.extend(A)

    def0

    def2

    def4=def6def7

Các

isMonotonic(A):9    0 def6

        0     4

Các

x, y 6x, y 7

Độ phức tạp về thời gian: O (n*logn), trong đó n là độ dài của không gian mảng.AUXILIARY: O (n), cần có thêm không gian cho danh sách x và y. O(N*logN), where N is the length of the array.
Auxiliary space: O(N), extra space is required for lists x and y.

Approach:  

Một mảng là đơn điệu khi và chỉ khi nó tăng đơn điệu, hoặc đơn điệu giảm. Kể từ pmonotonic if and only if it is monotone increasing, or monotone decreasing. Since p <= q and q <= r implies p <= r. So we only need to check adjacent elements to determine if the array is monotone increasing (or decreasing), respectively. We can check each of these properties in one pass.

Để kiểm tra xem một mảng A có tăng đơn điệu hay không, chúng tôi sẽ kiểm tra A [i] = a [i+1] cho tất cả tôi lập chỉ mục từ 0 đến len (a) -2. & Nbsp;monotone increasing, we’ll check A[i] <= A[i+1] for all i indexing from 0 to len(A)-2. Similarly we can check for monotone decreasing where A[i] >= A[i+1] for all i indexing from 0 to len(A)-2. 

Lưu ý: Mảng có phần tử đơn có thể được coi là cả tăng hoặc giảm đơn điệu, do đó trả về True True. & NBSP; Array with single element can be considered to be both monotonic increasing or decreasing, hence returns “True“. 

Dưới đây là việc thực hiện phương pháp trên: & nbsp;

Python3

def isMonotonic(A):

    x, y = [], []

Các

Các

x, y 6x, y 7

Độ phức tạp về thời gian: O (n*logn), trong đó n là độ dài của không gian mảng.AUXILIARY: O (n), cần có thêm không gian cho danh sách x và y. O(N), where N is the length of the array.
Auxiliary space: O(1) because it is using constant space.


Trong hướng dẫn này, chúng tôi sẽ học cách kiểm tra xem một mảng có đơn điệu hay không. Một mảng là cấu trúc dữ liệu container lưu trữ các phần tử, trong đó mỗi phần tử có thể được truy cập bởi một chỉ mục. Một mảng được cho là đơn điệu trong tự nhiên nếu các phần tử mảng liên tục tăng hoặc liên tục giảm.

Tăng đơn điệu

Một mảng a [] sẽ tăng đơn điệu nếu tất cả các yếu tố trong đó thỏa mãn tình trạng

cho tất cả tôiA[i] <= A[j]

[1, 2, 3, 4, 7, 10] là tăng đơn điệu.

Monotonic giảm

Một mảng A [] là đơn điệu giảm nếu tất cả các yếu tố trong đó thỏa mãn tình trạng:

với tất cả I = A [J]A[i] >= A[j]

[11, 10, 9, 6, 4, 1] là giảm đơn điệu.

Chương trình sẽ lấy mảng làm đầu vào và trả về true nếu mảng là đơn điệu khác, nó sẽ trả về sai. Ví dụ,True if the array is monotonic else it should return False. For example,

Nhìn vào đầu vào mẫu và đầu ra cho chương trình.

Đầu vào: 7 3 2 1 07 3 2 1 0

Đầu ra: ĐúngTrue

Đầu vào: 10 11 13 9 1410 11 13 9 14

Đầu ra: SaiFalse

Chúng tôi sẽ làm theo cách tiếp cận kiểm tra xem mảng có tăng hoặc giảm bằng cách kiểm tra các phần tử liền kề trong mảng. Để kiểm tra tăng đơn điệu, chúng tôi sẽ kiểm tra xem A [i] = A [i+1] cho tất cả các chỉ mục I từ 0 đến N-1 trong đó n là kích thước của mảng.<= a[i+1] for all indexes i from 0 to n-1 where n is the size of the array. To check for monotonic decreasing, we will check if a[i]>= a[i+1] for all indexes i from 0 to n-1 where n is the size of the array.

Một mảng chỉ có một phần tử duy nhất sẽ được coi là một đơn điệu và hàm sẽ trả về giá trị đúng trong chương trình của chúng tôi.

Thuật toán

Nhìn vào thuật toán để hiểu hoạt động của chương trình.

Bước 1- Xác định một hàm sẽ kiểm tra bản chất đơn điệu của mảngDefine a function that will check the monotone nature of the array

Bước 2- Tìm và lưu trữ kích thước của mảng bằng Len ()- Find and store size of array using len()

Bước 3- Nếu mảng chỉ có một phần tử trả về true If the array has only one element return True

Bước 4- khác, kiểm tra xem tất cả các giá trị trong mảng có liên tục giảm hoặc liên tục tăngElse, check if all values in the array are continuously decreasing or continuously increasing

Bước 5- Nếu điều kiện là đúng, hãy trả về đúng- If the condition is true, return True

Bước 6- Nếu điều kiện không đúng, hãy trả lại sai- If the condition is not true, return False

Bước 7- Khai báo một mảng với các giá trị- Declare an array with values

Bước 8- Chuyển mảng trong hàmPass the array in the function

Bước 9- In kết quả Print the result

Chương trình Python

Đây là chương trình để kiểm tra xem một mảng có đơn điệu hay không. Chúng tôi đã xác định một hàm sẽ trả về true nếu mảng là đơn điệu khác, nó sẽ trả về sai.

#check if monotone
#function definition
def ismonotone(a):
    n=len(a) #size of array
    if n==1:
        return True
    else:
        #check for monotone behaviour
        if all(a[i]>=a[i+1] for i in range(0,n-1) or a[i]<=a[i+1] for i in range(0,n-1)):
            return True
        else:
            return False

A = [6, 5, 4, 2]
print(ismonotone(A))
b = [6, 2, 4, 2]
print(ismonotone(b))
c=[4,3,2]
print(ismonotone(c))
d=[1]
print(ismonotone(d))


Đúng là đúng sự thật
False
True
True

Sự kết luận

Trong hướng dẫn này, chúng tôi đã tìm hiểu về các mảng đơn điệu là gì và làm thế nào chúng tôi có thể kiểm tra xem một mảng có phải là đơn điệu hay không sử dụng hàm. Có hai loại mảng đơn điệu- tăng đơn điệu và đơn điệu giảm. Nếu một mảng chỉ có 1 phần tử thì đó là đơn điệu.

Mảng đơn điệu là gì?

Một mảng được cho là đơn điệu trong tự nhiên nếu nó liên tục tăng hoặc liên tục giảm. Về mặt toán học, một mảng A liên tục tăng nếu đối với tất cả tôiif it is either continuously increasing or continuously decreasing. Mathematically, An array A is continuously increasing if for all i <= j, A[i] <= A[j].

Chức năng đơn điệu trong Python là gì?

Phương pháp monotonic () được sử dụng để có được giá trị của đồng hồ đơn điệu.Đồng hồ đơn điệu là một chiếc đồng hồ không thể đi ngược.Vì điểm tham chiếu của giá trị trả về của đồng hồ đơn điệu không được xác định, chỉ có sự khác biệt giữa kết quả của các cuộc gọi liên tiếp là hợp lệ.used to get the value of a monotonic clock. A monotonic clock is a clock that can not go backward. As the reference point of the returned value of the monotonic clock is undefined, only the difference between the results of consecutive calls is valid.

Thuật toán đơn điệu là gì?

Tính đơn điệu: Thuộc tính này hỏi liệu một thuật toán có được chấp nhận cục bộ không --- nghĩa là, nó luôn đánh giá thấp chi phí giữa bất kỳ hai trạng thái nào trong không gian tìm kiếm.Hãy nhớ lại rằng A* không yêu cầu g (n) = g* (n).This property asks if an algorithm is locally admissible---that is, it always underestimates the cost between any two states in the search space. Recall that A* does not require that g(n) = g*(n).

Một vấn đề đơn điệu là gì?

Một hàm hoặc trình tự thực được gọi là đơn điệu nếu nó liên tục tăng hoặc giảm.Do đó, trình tự sức mạnh của 2 đang tăng đơn điệu vì mỗi thuật ngữ lớn hơn so với trước đó.Hàm là giảm đơn điệu trên khoảng và tăng đơn điệu trong khoảng thời gian.. Thus, the sequence of powers of 2 is monotonically increasing because each term is larger than the previous. The function is monotonically decreasing on the interval and monotonically increasing on the interval .