Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • DSA
  • Practice Mathematical Algorithm
  • Mathematical Algorithms
  • Pythagorean Triplet
  • Fibonacci Number
  • Euclidean Algorithm
  • LCM of Array
  • GCD of Array
  • Binomial Coefficient
  • Catalan Numbers
  • Sieve of Eratosthenes
  • Euler Totient Function
  • Modular Exponentiation
  • Modular Multiplicative Inverse
  • Stein's Algorithm
  • Juggler Sequence
  • Chinese Remainder Theorem
  • Quiz on Fibonacci Numbers
Open In App
Next Article:
Calculate Median from given values of Mean and Mode
Next article icon

Mean and Median of a matrix

Last Updated : 13 Sep, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a sorted matrix of size n*n. Calculate the mean and median of the matrix .

Examples: 

Input : 1 2 3
4 5 6
7 8 9
Output :Mean: 5
Median: 5
Input : 1 1 1
2 2 2
4 4 4
Output :Mean: 2
Median: 2
Mean of matrix is = 
(sum of all elements of matrix)/
(total elements of matrix)
Note that this definition doesn't require
matrix to be sorted and works for all
matrices.
Median of a sorted matrix is calculated as:
1. When n is odd
median is mat[n/2][n/2]
2. When n is even, median is average
of middle two elements.
Middle two elements can be found at indexes
a[(n-2)/2][n-1] and a[n/2][0]

If given matrix is unsorted, we can find its median by first sorting the matrix.

Implementation:

C++




// CPP program to find mean and median
// of sorted square matrix.
#include <bits/stdc++.h>
using namespace std;
 
const int N = 4;
 
// Returns mean of a given matrix of
// size n x n.
double findMean(int a[][N])
{
    int sum = 0;
 
    // total sum calculation of matrix
    for (int i=0; i<N; i++)
       for (int j=0; j<N; j++)
          sum += a[i][j];
 
    return (double)sum/(N*N);
}
 
// Function for calculating median
double findMedian(int a[][N])
{
    if (N % 2 != 0)
       return a[N/2][N/2];
 
    if (N%2 == 0)
       return (a[(N-2)/2][N-1] +
                       a[N/2][0])/2.0;
}
 
// Driver program
int main()
{
    int a[N][N]= {{1, 2, 3, 4},
                   {5, 6, 7, 8},
                   {9, 10, 11, 12},
                   {13, 14, 15, 16}};
    cout << "Mean : " << findMean(a) << endl
         << "Median : "<< findMedian(a) << endl;
    return 0;
}
 
 

C




// C program to find mean and median
// of sorted square matrix.
#include <stdio.h>
 
#define N 4
// Returns mean of a given matrix of
// size n x n.
double findMean(int a[][N])
{
    int sum = 0;
 
    // total sum calculation of matrix
    for (int i=0; i<N; i++)
       for (int j=0; j<N; j++)
          sum += a[i][j];
 
    return (double)sum/(N*N);
}
 
// Function for calculating median
double findMedian(int a[][N])
{
    if (N % 2 != 0)
       return a[N/2][N/2];
 
    if (N%2 == 0)
       return (a[(N-2)/2][N-1] +
                       a[N/2][0])/2.0;
}
 
// Driver program
int main()
{
    int a[N][N]= {{1, 2, 3, 4},
                   {5, 6, 7, 8},
                   {9, 10, 11, 12},
                   {13, 14, 15, 16}};
    printf("Mean : %f\n",findMean(a));
    printf("Median : %f\n",findMedian(a));
    return 0;
}
 
// This code is contributed by kothavvsaakash.
 
 

Java




// Java program to find mean and median
// of sorted square matrix.
import java.io.*;
 
class GFG
{
     
// Returns mean of a given
// matrix of size n x n.
static double findMean(int a[][],
                    int n)
{
    int sum = 0;
    int N=n;
 
    // total sum calculation of matrix
    for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
        sum += a[i][j];
 
    return (double)sum / (N * N);
}
 
// Function for calculating median
static double findMedian(int a[][], int n)
{
    int N = n;
     
    if (N % 2 != 0)
    return a[N / 2][N / 2];
 
    if (N % 2 == 0)
    return (a[(N - 2) / 2][ N - 1] +
            a[ N / 2][0]) / (2.0);
    return 0;
}
 
    // Driver Code
    public static void main (String[] args)
    {
        int a[][]= {{1, 2, 3, 4},
                    {5, 6, 7, 8},
                    {9, 10, 11, 12},
                    {13, 14, 15, 16}};
             
        int n = a.length;
        System.out.println("Mean   : " +
                            findMean(a, n));
        System.out.println("Median : " +
                            findMedian(a, n));
    }
         
         
}
 
// This code is contributed by KRV.
 
 

Python3




# Python3 program to find mean and median
# of sorted square matrix.
N = 4
 
# Returns mean of a given matrix of
# size n x n.
def findMean(a):
     
    summ = 0
     
    # total sum calculation of matrix
    for i in range(N):
        for j in range(N):
            summ += a[i][j]
     
    return summ/(N*N)
 
# Function for calculating median
def findMedian(a):
    if (N % 2 != 0):
        return a[N//2][N//2]
    if (N % 2 == 0):
        return (a[(N - 2)//2][N - 1] + a[N//2][0])/2
 
# Driver program
a = [[1, 2, 3, 4],[5, 6, 7, 8],
    [9, 10, 11, 12],[13, 14, 15, 16]]
print("Mean :", findMean(a))
print("Median :",findMedian(a))
 
# This code is contributed by shubhamsingh10
 
 

C#




// C# program to find mean and median
// of sorted square matrix.
using System;
 
class GFG {
     
    // Returns mean of a given
    // matrix of size n x n.
    static double findMean(int [,]a, int n)
    {
        int sum = 0;
        int N = n;
     
        // total sum calculation of matrix
        for (int i = 0; i < N; i++)
            for (int j = 0; j < N; j++)
                sum += a[i,j];
     
        return (double)sum / (N * N);
    }
     
    // Function for calculating median
    static double findMedian(int [,]a, int n)
    {
        int N = n;
         
        if (N % 2 != 0)
        return a[N / 2,N / 2];
     
        if (N % 2 == 0)
        return ( a[(N - 2) / 2, (N - 1)] +
                     a[ N / 2, 0] ) / (2.0);
         
        return 0;
    }
 
    // Driver Code
    public static void Main ()
    {
        int [,]a= { { 1,  2,  3,  4},
                    { 5,  6,  7,  8},
                    { 9, 10, 11, 12},
                    {13, 14, 15, 16} };
             
        int n = a.GetLength(0);
         
        Console.WriteLine("Mean : " +
                            findMean(a, n));
                             
        Console.WriteLine("Median : " +
                            findMedian(a, n));
    }
         
}
 
// This code is contributed by Sam007.
 
 

Javascript




<script>
 
// Javascriptprogram to find mean and median
// of sorted square matrix.
 
// Returns mean of a given
// matrix of size n x n.
function findMean(a, n)
{
    var sum = 0;
    var N = n;
 
    // Total sum calculation of matrix
    for(var i = 0; i < N; i++)
        for(var j = 0; j < N; j++)
            sum += a[i][j];
 
    return sum / (N * N);
}
 
// Function for calculating median
function findMedian(a, n)
{
    var N = n;
     
    if (N % 2 != 0)
        return a[N / 2][N / 2];
 
    if (N % 2 == 0)
        return (a[(N - 2) / 2][ N - 1] +
                a[N / 2][0]) / (2.0);
    return 0;
}
 
// Driver Code
var a = [ [ 1, 2, 3, 4 ],
          [ 5, 6, 7, 8 ],
          [ 9, 10, 11, 12 ],
          [ 13, 14, 15, 16 ] ];
             
var n = a.length;
document.write("Mean   : " +
               findMean(a, n) + "<br>");
document.write("Median : " +
               findMedian(a, n) + "<br>");
 
// This code is contributed by Kirti
 
</script>
 
 

PHP




<?php
// PHP program to find
// mean and median
// of sorted square
// matrix.
 
$N = 4;
 
// Returns mean of
// a given matrix of
// size n x n.
function findMean($a)
{
    global $N;
    $sum = 0;
 
    // total sum calculation
    // of matrix
    for ($i = 0; $i < $N; $i++)
    for ($j = 0; $j < $N; $j++)
        $sum += $a[$i][$j];
 
    return (double)$sum / ($N * $N);
}
 
// Function for calculating median
function findMedian($a)
{
    global $N;
    if ($N % 2 != 0)
    return $a[$N / 2][$N / 2];
 
    if ($N % 2 == 0)
    return ($a[($N - 2) / 2][$N - 1] +
                 $a[$N / 2][0]) / 2.0;
}
 
    // Driver Code
    $a= array(array(1, 2, 3, 4),
              array(5, 6, 7, 8),
              array(9, 10, 11, 12),
              array(13, 14, 15, 16));
        echo "Mean : " , findMean($a),"\n",
             "Median : ", findMedian($a);
     
// This code is contributed by vt_m.
?>
 
 
Output
Mean : 8.5 Median : 8.5       

Time complexity: O(N2) as using two  for loops
Auxiliary Space: O(1)

 

METHOD 2:Using functions

APPROACH:

This Python program calculates the mean and median of a given matrix using functions. The program first defines two functions – mean() and median(), which take the matrix as an argument and return the calculated mean and median values, respectively. It then creates a 3×3 matrix and calls these functions to calculate the mean and median of the matrix. Finally, the program prints out the calculated mean and median values.

ALGORITHM:

  •  Define the mean() function that takes the matrix as an argument.
    •  Calculate the total sum of all the values in the matrix.
    •  Calculate the number of values in the matrix.
    •  Divide the total sum by the number of values to get the mean.
    •  Return the mean value.
  • Define the median() function that takes the matrix as an argument.
  •  Flatten the matrix into a 1D list.
  •  Sort the list in ascending order.
  • Calculate the length of the list.
  • If the length of the list is even, calculate the average of the middle two values.
  •  If the length of the list is odd, return the middle value.
  • Return the median value.

C++




// C++ Program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// function to find out mean value
double mean(vector<vector<int>>& matrix) {
    int total = 0;
    int count = matrix.size() * matrix[0].size();
     
    for (const auto& row : matrix) {
        for (int val : row) {
            total += val;
        }
    }
     
    return static_cast<double>(total) / count;
}
 
// Function to find out the media value
double median(vector<vector<int>>& matrix) {
    vector<int> flatten;
     
    for (const auto& row : matrix) {
        for (int val : row) {
            flatten.push_back(val);
        }
    }
     
      // sorting the flatten array
    sort(flatten.begin(), flatten.end());
    int n = flatten.size();
     
    if (n % 2 == 0) {
        return (static_cast<double>(flatten[n/2]) + flatten[n/2-1]) / 2;
    } else {
        return flatten[n/2];
    }
}
 
// Driver Program to test above functions
int main() {
      // Given Matrix
    vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
     
    double mean_value = mean(matrix);
    double median_value = median(matrix);
     
    cout << "Mean: " << mean_value << endl;
    cout << "Median: " << median_value << endl;
     
    return 0;
}
 
// THIS CODE IS CONTRIBUTED BY KIRTI AGARWAL
 
 

Java




import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class Main {
 
    // function to find out mean value
    static double mean(List<List<Integer> > matrix)
    {
        int total = 0;
        int count = matrix.size() * matrix.get(0).size();
 
        for (List<Integer> row : matrix) {
            for (int val : row) {
                total += val;
            }
        }
 
        return (double)total / count;
    }
 
    // Function to find out the median value
    static double median(List<List<Integer> > matrix)
    {
        List<Integer> flatten = new ArrayList<>();
 
        for (List<Integer> row : matrix) {
            for (int val : row) {
                flatten.add(val);
            }
        }
 
        // sorting the flatten array
        Collections.sort(flatten);
        int n = flatten.size();
 
        if (n % 2 == 0) {
            return ((double)flatten.get(n / 2)
                    + flatten.get(n / 2 - 1))
                / 2;
        }
        else {
            return flatten.get(n / 2);
        }
    }
 
    // Driver Program to test above functions
    public static void main(String[] args)
    {
        // Given Matrix
        List<List<Integer> > matrix = new ArrayList<>();
        matrix.add(new ArrayList<>(List.of(1, 2, 3)));
        matrix.add(new ArrayList<>(List.of(4, 5, 6)));
        matrix.add(new ArrayList<>(List.of(7, 8, 9)));
 
        double mean_value = mean(matrix);
        double median_value = median(matrix);
 
        System.out.println("Mean: " + mean_value);
        System.out.println("Median: " + median_value);
    }
}
// This code is contributed by akshitaguprzj3
 
 

Python3




def mean(matrix):
    total = sum(val for row in matrix for val in row)
    count = len(matrix) * len(matrix[0])
    return total / count
 
def median(matrix):
    flatten = [val for row in matrix for val in row]
    flatten.sort()
    n = len(flatten)
    if n % 2 == 0:
        return (flatten[n//2] + flatten[n//2-1]) / 2
    else:
        return flatten[n//2]
 
# Create a 3x3 matrix
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
 
# Calculate mean and median
mean_value = mean(matrix)
median_value = median(matrix)
 
# Print the results
print("Mean:", mean_value)
print("Median:", median_value)
 
 

C#




using System;
using System.Collections.Generic;
using System.Linq;
 
class Program
{
    // Function to find out mean value
    static double Mean(List<List<int>> matrix)
    {
        int total = 0;
        int count = matrix.Count * matrix[0].Count;
 
        foreach (var row in matrix)
        {
            foreach (int val in row)
            {
                total += val;
            }
        }
 
        return (double)total / count;
    }
 
    // Function to find out the median value
    static double Median(List<List<int>> matrix)
    {
        List<int> flatten = new List<int>();
 
        foreach (var row in matrix)
        {
            foreach (int val in row)
            {
                flatten.Add(val);
            }
        }
 
        // Sorting the flatten list
        flatten.Sort();
        int n = flatten.Count;
 
        if (n % 2 == 0)
        {
            return ((double)flatten[n / 2] + flatten[n / 2 - 1]) / 2;
        }
        else
        {
            return flatten[n / 2];
        }
    }
 
    // Driver Program to test above functions
    static void Main(string[] args)
    {
        // Given Matrix
        List<List<int>> matrix = new List<List<int>>
        {
            new List<int> {1, 2, 3},
            new List<int> {4, 5, 6},
            new List<int> {7, 8, 9}
        };
 
        double meanValue = Mean(matrix);
        double medianValue = Median(matrix);
 
        Console.WriteLine($"Mean: {meanValue}");
        Console.WriteLine($"Median: {medianValue}");
    }
}
// This code is contributed by akshitaguprzj3
 
 

Javascript




// Function to calculate the mean of a matrix
function mean(matrix) {
    let total = matrix.flat().reduce((sum, val) => sum + val, 0);
    let count = matrix.length * matrix[0].length;
    return total / count;
}
 
// Function to calculate the median of a matrix
function median(matrix) {
    let flatten = matrix.flat().sort((a, b) => a - b);
    let n = flatten.length;
    if (n % 2 === 0) {
        return (flatten[n / 2] + flatten[n / 2 - 1]) / 2;
    } else {
        return flatten[Math.floor(n / 2)];
    }
}
 
// Create a 3x3 matrix
let matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
 
// Calculate mean and median
let meanValue = mean(matrix);
let medianValue = median(matrix);
 
// Print the results
console.log("Mean:", meanValue);
console.log("Median:", medianValue);
 
// THIS CODE IS CONTRIBUTED BY KIRTI AGARWAL
 
 
Output
Mean: 5.0 Median: 5       

Time Complexity: The time complexity of this program is O(nlogn) for sorting the list, where n is the total number of elements in the matrix.
Space Complexity: The space complexity of this program is O(n) for storing the flattened list, where n is the total number of elements in the matrix.



Next Article
Calculate Median from given values of Mean and Mode
https://media.geeksforgeeks.org/auth/avatar.png
GeeksforGeeks
Improve
Article Tags :
  • Algorithms
  • DSA
  • Mathematical
  • Matrix
  • maths-mean
  • median-finding
  • Order-Statistics
  • statistical-algorithms
Practice Tags :
  • Algorithms
  • Mathematical
  • Matrix

Similar Reads

  • Median of an Array
    Given an array arr[], the task is to find the median of this array. The median of an array of size n is defined as the middle element when n is odd and the average of the middle two elements when n is even. Examples: Input: arr[] = [12, 3, 5, 7, 4, 19, 26]Output: 7 Explanation: Sorted sequence of gi
    11 min read
  • Find the mean vector of a Matrix
    Given a matrix of size M x N, the task is to find the Mean Vector of the given matrix. Examples: Input : mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} Output : Mean Vector is [4 5 6] Mean of column 1 is (1 + 4 + 7) / 3 = 4 Mean of column 2 is (2 + 5 + 8) / 3 = 5 Mean of column 3 is (3 + 6 + 9) / 3 = 6
    6 min read
  • Maximize the median of an array
    Given an array of n elements. The task is to print the array in a form such that the median of that array is maximum. Examples: Input: arr[] = {3, 1, 2, 3, 8} Output: 3 1 8 2 3 Input: arr[] = {9, 8, 7, 6, 5, 4} Output: 7 6 9 8 5 4 Approach: Median of any sequence is the middle most element of given
    7 min read
  • Mean of an Array
    Given an array arr[]. The task is to find the mean(floor value) of the array. Examples: Input: arr[] = [1, 3, 4, 2, 6, 5, 8, 7]Output: 4Explanation: Sum of the elements is 1 + 3 + 4 + 2 + 6 + 5 + 8 + 7 = 36, Mean = 36/8 = 4 Input: arr[] = [4, 4, 4, 4, 4]Output: 4Explanation: Sum of the elements is 4
    4 min read
  • Calculate Median from given values of Mean and Mode
    Given two integers mean and mode, representing the Mean and Mode of a random group of data, the task is to calculate the median of that group of data. Input: mean = 3, mode = 6Output: 4 Input: mean = 1, mode = 1Output : 1 Approach: The given problem can be solved by using the mathematical relationsh
    3 min read
  • Maximize median of a KxK sub-grid in an NxN grid
    Given a square matrix arr[][] of size N consisting of non-negative integers and an integer K, the task is to find the maximum median value of the elements of a square submatrix of the size K. Examples: Input: arr[][] = {{1, 5, 12}, {6, 7, 11}, {8, 9, 10}}, N = 3, K = 2Output: 9Explanation: The media
    14 min read
  • Geometric mean (Two Methods)
    Given an array of n elements, we need to find the geometric mean of the numbers. Generally geometric mean of n numbers is the nth root of their product. If there are n elements x1, x2, x3, . . ., xn in an array and if we want to calculate the geometric mean of the array elements is Geometric mean =
    10 min read
  • Find median in row wise sorted matrix
    Given a row-wise sorted matrix mat[][] of order n * m, where the number of rows and columns are always odd. The task is to find the median of the matrix. Note: Median is the middle number in a sorted ascending or descending list of numbers. In case of an even number of elements return the left media
    15+ min read
  • Number of elements greater than modified mean in matrix
    Normally mean of the matrix is the average of all elements present in the matrix. Consider a modified mean as the floor of the mean of the row-wise minimum and column-wise maximum. The row-wise minimum is the minimum element from each row of the given matrix and the column-wise maximum is the maximu
    9 min read
  • Find mean of subarray means in a given array
    You are given an array of n-elements you have to find the mean of the array as mean of all consecutive m-elements of array for all possible m-length array with consecutive elements. Examples: Input :arr[] = {3, 5, 1, 8, 9, 4}, m = 4 Output : Mean = 5.16667 Explanation : {3, 5, 1, 8}, {5, 1, 8, 9}, {
    6 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences