[1721 views]
To find the inverse of an array, we swap the array elements with the corresponding indices. For example, if 4 is present at index 1 in the input array, in the inverse array, 1 will be present at index 4. The only constraint on the input values of the array is that the array elements should be in the range between 0 to n without repetition, where ‘n’ is the size of the array. This is the most important constraint while finding out the inverse because there should not be two different values for one index and also, we cannot leave one or more index null.
Let us consider an example for better understanding:
Input array: arr[] = { 4, 2, 0, 1, 3}
Inverse array: inverse[] = { 2, 3, 1, 4, 0 }
If the inverse or mirror image of an array is equal to the original array, the array is known as mirror inverse.
Let us consider an example:
Input array: arr[] = { 3, 4, 2, 0, 1 }
Inverse array: inverse[] = { 3, 4, 2, 0, 1 }
As both the arrays are same, arr[] is a mirror inverse array.
To check whether an array is mirror inverse, we need to find the inverse of the given array. We take the size of the array as input from the user and store it in a variable, say ‘n’. We declare two arrays of size ‘n’. One, to store the array given as input: arr[ ] and another to store the inverse of the arr[ ] array: inv[ ].Then, we start a loop which will run ‘n’ times and take each element of the array as input one by one. Once this loop completes its execution, we have the array arr[ ] that needs to be checked.
Now, we start another loop that will run ‘n’ number of times. The loop variable ‘i’ is initialized as 0 and is incremented after each iteration. We find out the value present at ith index of the array and store it in the variable ‘value’ with the help of the statement: value = arr[i]. This value represents an index for the inverse array where ‘i’ needs to be stored as data. We store the value i at the position ‘value’ of array inverse (inv). This process is repeated for all the elements of the array. Once the loop completes its execution, we have the inverse of the array in inv[ ].
Now, we need to compare the a[] and inv[] arrays. To do this, we start a loop with an initial value of 0 and compare each element of both the arrays one by one. If an element does not match, the flag becomes false and the loop terminates. We then check whether the flag is true. If yes, the array is mirror inverse, else, it is not a mirror inverse.