Заменить максимальный элемент в массиве коэффициентом диапазона
Для массива arr [] целочисленных элементов задача состоит в том, чтобы заменить максимальный элемент в массиве на коэффициент диапазона того же массива.
Коэффициент диапазона: (Макс - Мин) / (Макс + Мин)
Примеры:
Input: arr[] = {15, 16, 10, 9, 6, 7, 17}
Output: 15 16 10 9 6 7 0.478261
Max = 17, Min = 6
Coefficient of Range = (Max – Min) / (Max + Min) = 11 / 23 = 0.478261
Input: arr[] = {5, 10, 15}
Output: 5 10 0.5
Подход: найдите максимальный и минимальный элемент из данного массива и вычислите коэффициент диапазона, coeff = (Max - Min) / (Max + Min), затем замените максимальный элемент на рассчитанный coeff. После обновления массива распечатайте содержимое обновленного массива.
Ниже представлена реализация описанного выше подхода:
C ++
// C++ implementation to replace maximum element // by coefficient of range #include <bits/stdc++.h> using namespace std; // Utility function to print the contents of the array void printArr( float arr[], int n) { for ( int i = 0; i < n; i++) cout << arr[i] << " " ; } // Function to replace the maximum element from the array // with the coefficient of range of the array void replaceMax( float arr[], int n) { // Maximum element from the array float max = *std::max_element(arr, arr + n); // Minimum element from the array float min = *std::min_element(arr, arr + n); // Calculate the coefficient of range for the array float range = max - min; float coeffOfRange = range / (max + min); // Assuming all the array elements are distinc // Replace the maximum element with // the coeffient of range of the array for ( int i = 0; i < n; i++) { if (arr[i] == max) { arr[i] = coeffOfRange; break ; } } // Print the updated array printArr(arr, n); } // Driver code int main() { float arr[] = { 15, 16, 10, 9, 6, 7, 17 }; int n = sizeof (arr) / sizeof (arr[0]); replaceMax(arr, n); return 0; } |
Джава
// Java implementation to replace maximum element // by coefficient of range import java.util.*; class GFG { // Utility function to print the // contents of the array static void printArr( float arr[], int n) { for ( int i = 0 ; i < n; i++) System.out.print(arr[i] + " " ); } // Function to replace the maximum // element from the array with the // coefficient of range of the array static void replaceMax( float arr[], int n) { // Maximum element from the array float max = arr[ 0 ]; for ( int i = 0 ; i < n; i++) { if (arr[i] > max) max = arr[i]; } // Minimum element from the arra float min = arr[ 0 ]; for ( int i = 0 ; i < n; i++) { if (arr[i] < min) min = arr[i]; } // Calculate the coefficient of // range for the array float range = max - min; float coeffOfRange = range / (max + min); // Assuming all the array elements are distinc // Replace the maximum element with // the coeffient of range of the array for ( int i = 0 ; i < n; i++) { if (arr[i] == max) { arr[i] = coeffOfRange; break ; } } // Print the updated array printArr(arr, n); } // Driver code public static void main(String args[]) { float arr[] = { 15 , 16 , 10 , 9 , 6 , 7 , 17 }; int n = arr.length; replaceMax(arr, n); } } // This code is contributed by // Sahil_Shelangia |
Python3
# Python3 implementation to replace # maximum element by coefficient of range # Utility function to print the # contents of the array def printArr(arr, n) : for i in range (n) : print (arr[i], end = " " ) # Function to replace the maximum element # from the array with the coefficient of # range of the array def replaceMax(arr, n) : # Maximum element from the array max_element = max (arr) # Minimum element from the array min_element = min (arr) # Calculate the coefficient of # range for the array ranges = max_element - min_element coeffOfRange = ranges / (max_element + min_element) # Assuming all the array elements are # distinct. Replace the maximum element # with the coeffient of range of the array for i in range (n) : if (arr[i] = = max_element) : arr[i] = coeffOfRange break # Print the updated array printArr(arr, n) # Driver code if __name__ = = "__main__" : arr = [ 15 , 16 , 10 , 9 , 6 , 7 , 17 ] n = len (arr) replaceMax(arr, n) # This code is contributed by Ryuga |
C #
// C# implementation to replace maximum element // by coefficient of range using System; class GFG { // Utility function to print the // contents of the array static void printArr( float []arr, int n) { for ( int i = 0; i < n; i++) Console.Write(arr[i] + " " ); } // Function to replace the maximum // element from the array with the // coefficient of range of the array static void replaceMax( float []arr, int n) { // Maximum element from the array float max = arr[0]; for ( int i = 0; i < n; i++) { if (arr[i] > max) max = arr[i]; } // Minimum element from the arra float min = arr[0]; for ( int i = 0; i < n; i++) { if (arr[i] < min) min = arr[i]; } // Calculate the coefficient of // range for the array float range = max - min; float coeffOfRange = range / (max + min); // Assuming all the array elements are distinc // Replace the maximum element with // the coeffient of range of the array for ( int i = 0; i < n; i++) { if (arr[i] == max) { arr[i] = coeffOfRange; break ; } } // Print the updated array printArr(arr, n); } // Driver code public static void Main() { float []arr = { 15, 16, 10, 9, 6, 7, 17 }; int n = arr.Length; replaceMax(arr, n); } } // This code is contributed by // shs.. |
PHP
<?php // PHP implementation to replace maximum // element by coefficient of range // Utility function to print the // contents of the array function printArr( $arr , $n ) { for ( $i = 0; $i < $n ; $i ++) echo $arr [ $i ] . " " ; } // Function to replace the maximum element // from the array with the coefficient of // range of the array function replaceMax( $arr , $n ) { // Maximum element from the array $max = max( $arr ); // Minimum element from the array $min = min( $arr ); // Calculate the coefficient of // range for the array $range = $max - $min ; $coeffOfRange = round ( $range / ( $max + $min ), 6); // Assuming all the array elements // are distinct. Replace the maximum // element with the coeffient of // range of the array for ( $i = 0; $i < $n ; $i ++) { if ( $arr [ $i ] == $max ) { $arr [ $i ] = $coeffOfRange ; break ; } } // Print the updated array printArr( $arr , $n ); } // Driver code $arr = array ( 15, 16, 10, 9, 6, 7, 17 ); $n = count ( $arr ); replaceMax( $arr , $n ); // This code is contributed by mits ?> |
Javascript
<script> // JavaScript implementation to // replace maximum element // by coefficient of range // Utility function to print the // contents of the array function printArr(arr, n) { for (let i = 0; i < n - 1; i++) document.write(arr[i] + " " ); document.write(arr[n - 1].toFixed(6)); } // Function to replace the maximum // element from the array with the // coefficient of range of the array function replaceMax(arr, n) { // Maximum element from the array let max = arr[0]; for (let i = 0; i < n; i++) { if (arr[i] > max) max = arr[i]; } // Minimum element from the arra let min = arr[0]; for (let i = 0; i < n; i++) { if (arr[i] < min) min = arr[i]; } // Calculate the coefficient of // range for the array let range = max - min; let coeffOfRange = range / (max + min); // Assuming all the array elements are distinc // Replace the maximum element with // the coeffient of range of the array for (let i = 0; i < n; i++) { if (arr[i] == max) { arr[i] = coeffOfRange; break ; } } // Print the updated array printArr(arr, n); } let arr = [ 15, 16, 10, 9, 6, 7, 17 ]; let n = arr.length; replaceMax(arr, n); </script> |
15 16 10 9 6 7 0.478261