Skip to Content
CoursesCSC102การวิเคราะห์ทางสถิติเบื้องต้นของอาร์เรย์สองมิติ

การวิเคราะห์ทางสถิติเบื้องต้นของอาร์เรย์สองมิติ

โจทย์

เขียนโปรแกรมภาษา Java ที่ทำการวิเคราะห์ทางสถิติเบื้องต้นบนอาร์เรย์สองมิติของจำนวนเต็ม โปรแกรมของคุณจะคำนวณและแสดงสถิติต่อไปนี้จากค่าในอาร์เรย์:

  • ผลรวม: ผลรวมทั้งหมดของค่าทั้งหมดในอาร์เรย์
  • ค่าต่ำสุด: จำนวนที่น้อยที่สุดในอาร์เรย์
  • ค่าสูงสุด: จำนวนที่มากที่สุดในอาร์เรย์
  • ค่าเฉลี่ย: ค่าเฉลี่ยของจำนวนทั้งหมดในอาร์เรย์
  • ค่ามัธยฐาน: ค่ากลางเมื่อจำนวนในอาร์เรย์ถูกเรียงลำดับจากน้อยไปมาก ถ้าจำนวนสมาชิกเป็นเลขคู่ ค่ามัธยฐานคือค่าเฉลี่ยของสองจำนวนตรงกลาง

โปรแกรมจะรับค่าจำนวนเต็มสองค่าก่อน คือ m และ n ซึ่งแทนจำนวนแถวและคอลัมน์ของอาร์เรย์ ตามด้วยสมาชิกของอาร์เรย์ขนาด m x n

InputOutput
2 2
3 7
2 4
Sum: 16
Minimum value: 2
Maximum value: 7
Average value: 4.0
Median value: 3.5

โค้ด

import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = scanner.nextInt(); int n = scanner.nextInt(); int[][] array = new int[m][n]; int totalElements = m * n; int sum = 0; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int currentIndex = 0; int[] medianArray = new int[totalElements]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { array[i][j] = scanner.nextInt(); sum += array[i][j]; if (array[i][j] < min) min = array[i][j]; if (array[i][j] > max) max = array[i][j]; medianArray[currentIndex] = array[i][j]; currentIndex++; } } double average = (double) sum / totalElements; Arrays.sort(medianArray); double median = (totalElements % 2 == 0) ? (medianArray[totalElements / 2 - 1] + medianArray[totalElements / 2]) / 2.0 : medianArray[totalElements / 2]; System.out.println("Sum: " + sum); System.out.println("Minimum value: " + min); System.out.println("Maximum value: " + max); System.out.println("Average value: " + average); System.out.println("Median value: " + median); } }

คำอธิบาย

import java.util.Arrays; import java.util.Scanner;
  • เราเริ่มต้นด้วยการนำเข้า (import) คลาสที่จำเป็น
  • Arrays ใช้สำหรับการจัดการอาร์เรย์ เช่น การเรียงลำดับ
  • Scanner ใช้สำหรับการรับข้อมูลจากผู้ใช้
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
  • เราสร้างคลาสหลักชื่อ Main
  • เมธอด main เป็นจุดเริ่มต้นของโปรแกรม
  • เราสร้างออบเจ็กต์ Scanner เพื่อรับข้อมูลจากผู้ใช้
int m = scanner.nextInt(); int n = scanner.nextInt();
  • เรารับค่า m และ n จากผู้ใช้ ซึ่งเป็นจำนวนแถวและคอลัมน์ของอาร์เรย์
int[][] array = new int[m][n]; int totalElements = m * n; int sum = 0; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; int currentIndex = 0;
  • เราสร้างอาร์เรย์สองมิติขนาด m x n
  • totalElements คือจำนวนสมาชิกทั้งหมดในอาร์เรย์
  • เราเตรียมตัวแปรสำหรับเก็บผลรวม (sum), ค่าต่ำสุด (min), และค่าสูงสุด (max)
  • currentIndex ใช้สำหรับติดตามตำแหน่งปัจจุบันในอาร์เรย์เพื่อหาค่ามัธยฐาน
int[] medianArray = new int[totalElements];
  • เราสร้างอาร์เรย์หนึ่งมิติเพื่อเก็บค่าทั้งหมดสำหรับการคำนวณค่ามัธยฐาน
for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { array[i][j] = scanner.nextInt(); sum += array[i][j]; if (array[i][j] < min) min = array[i][j]; if (array[i][j] > max) max = array[i][j]; medianArray[currentIndex] = array[i][j]; currentIndex++; } }
  • เราใช้ลูปซ้อนเพื่อรับค่าจากผู้ใช้และเก็บในอาร์เรย์สองมิติ
  • ในขณะเดียวกัน เราคำนวณผลรวม, ค่าต่ำสุด, และค่าสูงสุด
  • เราเก็บค่าทั้งหมดในอาร์เรย์หนึ่งมิติ (medianArray) เพื่อใช้ในการคำนวณค่ามัธยฐาน
double average = (double) sum / totalElements;
  • เราคำนวณค่าเฉลี่ยโดยหารผลรวมด้วยจำนวนสมาชิกทั้งหมด
Arrays.sort(medianArray); double median = (totalElements % 2 == 0) ? (medianArray[totalElements / 2 - 1] + medianArray[totalElements / 2]) / 2.0 : medianArray[totalElements / 2];
  • เราเรียงลำดับ medianArray โดยใช้ Arrays.sort() เรียงลำดับสมาชิกในอาร์เรย์จากน้อยไปมากเพื่อหาค่ามัธยฐาน
  • ถ้าจำนวนสมาชิกเป็นเลขคู่ เราใช้ค่าเฉลี่ยของสองจำนวนตรงกลาง
  • ถ้าจำนวนสมาชิกเป็นเลขคี่ เราใช้ค่าตรงกลาง
System.out.println("Sum: " + sum); System.out.println("Minimum value: " + min); System.out.println("Maximum value: " + max); System.out.println("Average value: " + average); System.out.println("Median value: " + median);
  • สุดท้าย เราแสดงผลลัพธ์ทั้งหมดที่คำนวณได้
ปรับปรุงล่าสุด