מיטל פון אַרייז נאָך רימוווינג סאַלושאַנז


שוועריקייט לעוועל גרינג
אָפט געבעטן אין גוגל
מענגע

פּראָבלעם דערקלערונג

אין דעם פּראָבלעם "מיינען פון אַררייַ נאָך רימוווינג עטלעכע עלעמענטן" מיר באַקומען אַ מענגע. אַלע די עלעמענטן פון די מענגע זענען positive ינטאַדזשערז. די גרייס פון דעם מענגע איז קייפל פון 20.

אונדזער אַרבעט איז צו געפֿינען די מיטל פון די מענגע עקסקלודינג די קלענסטער 5% עלעמענטן און די העכסטן 5% עלעמענטן.

בייַשפּיל

arr = [6,2,7,5,1,2,0,3,10,2,5,0,5,5,0,8,7,6,8,0]
4.000000

דערקלערונג:

מיטל פון אַרייז נאָך רימוווינג סאַלושאַנז

די בילד ווייזט די געגעבן מענגע נאָך סאָרטינג. נאָך רימוווינג די העכסטן און לאָואַסט 5% עלעמענטן, די סומע פון ​​די רוען עלעמענט איז 172, און די גאַנץ נומער פון רוען עלעמענטן זענען 36. אַזוי די דורכשניטלעך ווערט 4.77778.

אַפּפּראָאַטש פֿאַר די מיטל פון אַררי נאָך רימוווינג עטלעכע עלעמענטן לעעטקאָדע לייזונג

דאָס איז אַן גרינג ימפּלאַמענטיישאַן פּראָבלעם. ונטער זענען די סטעפּס צו סאָלווע דעם פּראָבלעם:

  1. סאָרט די געגעבן מענגע ווי מיר דאַרפֿן צו באַפרייַען די העכסטן און לאָואַסט 5% עלעמענטן פֿון די מענגע.
  2. סטאָר די לענג פון די מענגע אין אַ בייַטעוודיק.
  3. דערקלערן צוויי וועריאַבאַלז:
    1. צו קראָם די סומע פון ​​עלעמענטן.
    2. צו קראָם די נומער פון עלעמענטן אין-צווישן.
  4. איצט לויפן אַ שלייף און געפֿינען די סומע פון ​​די טריממעד עלעמענטן.
    1. פֿאַר דעם, מיר וועלן יניטיאַליזירן די שלייף פֿון n * 0.05 ווו n איז די לענג פון די געגעבן מענגע און די שלייף וועט לויפן ביז n * 0.95.
  5. רעכענען די דורכשניטלעך.
    1.  אַ וויכטיק פונט צו טאָן דאָ איז אַז עס זאָל צוריקקומען אַ טאָפּל ווערט, נישט אַ גאַנץ ווערט.

ימפּלעמענטאַטיאָן

C ++ קאָד פֿאַר מיטל פון אַררי נאָך רימוווינג עטלעכע עלעמענטן

#include <bits/stdc++.h> 
using namespace std; 
    double trimMean(vector<int>& arr) {
        sort(arr.begin(),arr.end());
        int n=arr.size();
        double sum=0,cnt=0;
        for(int i=(n*.05);i<n*.95;i++)
        { 
            sum+=arr[i];
            cnt++;
        }
        return sum/cnt;      
    }
int main() 
{ 
 vector<int> arr = {6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4}; 
 double ans=trimMean(arr);
 cout<<ans<<endl;
 return 0;
}
4.77778

דזשאַוואַ קאָד פֿאַר מיינען פון עריי נאָך רימוווינג עטלעכע עלעמענטן

import java.util.Arrays; 
public class Tutorialcup {
    public static double trimMean(int[] arr) {
     Arrays.sort(arr);
     int n = arr.length;   
     double sum = 0d,cnt=0; 
     for(int i=n / 20;i<n - n / 20;i++)
        { 
            sum+=arr[i];
            cnt++;
        }
        return sum/cnt; 
    }
  public static void main(String[] args) {
        int [] arr = {6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4}; 
        double ans=trimMean(arr); 
        System.out.println(ans);
  }
}
4.77778

קאַמפּלעקסיטי אַנאַליסיס פון די מעאַסורעמענט נאָך רימוווינג עטלעכע עלעמענטן לעעטקאָדע לייזונג

צייט קאַמפּלעקסיטי

די צייט קאַמפּלעקסיטי פון די אויבן קאָד איז O (nlogn) ווייַל מיר סאָרטירן די געגעבן מענגע. דאָ n איז די לענג פון די געגעבן מענגע.

אָרט קאַמפּלעקסיטי

די פּלאַץ קאַמפּלעקסיטי פון די אויבן קאָד איז אָ (1) ווייַל מיר נוצן בלויז אַ בייַטעוודיק צו קראָם ענטפֿערס.

רעפֿערענצן