Sort by

recency

|

877 Discussions

|

  • + 0 comments

    import java.util.*;

    public class Solution { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

        // Read the size of the array
        int n = scanner.nextInt();
        int[] numbers = new int[n];
        double sum = 0;
    
        // Read array elements and compute sum for mean
        for (int i = 0; i < n; i++) {
            numbers[i] = scanner.nextInt();
            sum += numbers[i];
        }
    
        // Sort the array for median and mode
        Arrays.sort(numbers);
    
        // Calculate mean
        double mean = sum / n;
    
        // Calculate median
        double median;
        if (n % 2 == 0) {
            median = (numbers[n / 2 - 1] + numbers[n / 2]) / 2.0;
        } else {
            median = numbers[n / 2];
        }
    
        // Calculate mode
        int mode = numbers[0];
        int maxCount = 1;
        int currentCount = 1;
    
        for (int i = 1; i < n; i++) {
            if (numbers[i] == numbers[i - 1]) {
                currentCount++;
            } else {
                currentCount = 1;
            }
    

    java code: if (currentCount > maxCount || (currentCount == maxCount && numbers[i] < mode)) { maxCount = currentCount; mode = numbers[i]; } }

        // Output the results rounded to 1 decimal place
        System.out.printf("%.1f\n", mean);
        System.out.printf("%.1f\n", median);
        System.out.println(mode);
    }
    

    }

  • + 0 comments

    This is my algoritmic solution in python. I just use math library to round floor for counting the median:

    import math`

    n = int(input())

    x = input().split(" ")

    for i in range(len(x)): x[i] = int(x[i])

    x.sort()

    print(sum(x)/n)

    if(n%2==0): print((x[int(n/2)-1]+x[int(n/2)])/2) else: print(x[math.floor(n/2)])

    occur = 0 high = 0 modus = x[0]
    for i in range(1, n): if (x[i] == x[i-1]): occur += 1 if occur > high: modus = x[i] high = occur else: occur = 0

    print(modus)

    `

  • + 0 comments

    **simple and sweet python solution **

    from collections import Counter as c
    n = int(input())
    x = list(map(int,input().split()))
    print(s.mean(x))
    print(s.median(x))
    a = c(x)
    m = 0
    for i,j in a.items():
    if m < j:
    m = j
    if m==1:
    print(min(x))
    else:
    print(min(s.multimode(x)))
    
  • + 0 comments

    python

    import numpy as np

    from collections import Counter

    array_size = int(input())

    array_numbers = list(map(int, input().split()))

    mean = np.mean(array_numbers)

    median = np.median(array_numbers)

    counts= Counter(array_numbers)

    max_count= max(counts.values())

    modes= [number for number, count in counts.items() if count == max_count]

    mode = min(modes)

    print(mean) print(median) print(mode)

  • + 0 comments
    from collections import Counter
    
    n=int(input())
    arr=list(map(int,input().split()))
    
    mean=sum(arr)/n
    
    freq=Counter(arr)
    sorted_dict = {
        k: v for k, v in sorted(freq.items(), key=lambda item: (-item[1], item[0]))
    }
    mode,*_=sorted_dict
    
    arr=sorted(arr)
    if n%2==0:
        median=(arr[n//2]+arr[(n//2)-1])/2
    else:
        median=arr[(n//2)-1]
    
    print(mean)
    print(median)
    print(mode)
    

    or

    import statistics
    from collections import Counter
    n = int(input())
    arr = list(map(int, input().split()))
    mean = statistics.mean(arr)
    median = statistics.median(arr)
    freq=Counter(arr)
    mode = max(freq.items(), key=lambda item: (item[1], -item[0]))[0]
    
    print(f"{mean:.1f}")
    print(f"{median:.1f}")
    print(mode)