Tính toán giá trị trung bình, trung vị, chế độ và phạm vi không phải là một nhiệm vụ quá phổ biến, nhưng các nhà phát triển chắc chắn cần biết chúng là gì và cách tính toán chúng dựa trên một tập hợp số
Trước khi chúng tôi tiến hành thực hiện, hãy cùng tìm hiểu ý nghĩa của từng thuật ngữ này
Mean là trung bình cộng của tất cả các số trong một mảng
Nó có thể được tính bằng cách cộng tất cả các số và chia cho kích thước mảng
Hãy tính giá trị trung bình cho mảng sau. [2, 4, 5, 7, 1, 8, 1]
- Cộng tất cả các số. 2 + 4 + 5 + 7 + 1 + 8 + 1 = 28
- Chia tổng cho kích thước. 28/7 = 4
Giá trị trung bình là 4
const mean = arr => {
let total = 0;
for [let i = 0; i < arr.length; i++] {
total += arr[i];
}
return total / arr.length;
};
Trung vị là số đứng giữa trong dãy số đã sắp xếp
Để tính giá trị này, trước tiên chúng ta nên sắp xếp một mảng và kiểm tra kích thước - xem nó là số lẻ hay số chẵn
Trường hợp 1. Số lẻ
Nếu size lẻ chỉ cần lấy số ở giữa rồi trả lại
Hãy tính trung vị cho mảng sau. [2, 4, 5, 7, 1, 8, 1]
- Sắp xếp tất cả các số. [1, 1, 2, 4, 5, 7, 8]
- Kiểm tra xem kích thước là chẵn hay lẻ. 7 là số lẻ
- Tìm số ở giữa và trả về. 4
Giá trị trung vị là 4
Trường hợp #2. Thậm chí
Nếu kích thước là chẵn, chúng ta có hai số ở giữa, vì vậy chúng ta nên tính trung bình cộng của chúng
Hãy tính trung vị cho mảng sau. [5, 6, 1, 2, 10, 8, 3, 4]
- Sắp xếp tất cả các số. [1, 2, 3, 4, 5, 6, 8, 10]
- Kiểm tra xem kích thước có đồng đều hay không. 8 chẵn
- Tính trung bình cộng của hai số đứng giữa. [4 + 5] / 2 = 4. 5
Giá trị trung vị là 4. 5
const median = arr => {
const { length } = arr;
arr.sort[[a, b] => a - b];
if [length % 2 === 0] {
return [arr[length / 2 - 1] + arr[length / 2]] / 2;
}
return arr[[length - 1] / 2];
};
Chế độ là số xảy ra thường xuyên nhất
Nếu có nhiều hơn một số xuất hiện thường xuyên như nhau, thì số đầu tiên được trả về
Trường hợp 1. Một số
Nếu một số xảy ra thường xuyên nhất, chúng tôi chỉ trả lại nó
Chế độ cho mảng sau. [2, 4, 6, 2, 2] là 2
Trường hợp #2. Vài số
Nếu một vài số xuất hiện cùng một số lần, thì số đầu tiên được tìm thấy sẽ được trả về
Chế độ cho mảng sau. [2, 4, 6, 2, 2, 4, 4, 6, 6] cũng là 2
Thuật toán như sau
- Lặp lại mảng, thêm từng số vào Đối tượng JavaScript nếu nó chưa có ở đó
- Nếu số đã được thêm vào, hãy tăng số lượng khóa của nó
Kiểm tra xem chế độ được lưu trữ cao nhất [số đếm] có nhỏ hơn số được xử lý không
- Nếu nhỏ hơn, thì biến đếm được thay đổi thành bất kỳ khóa nào cho phần tử hiện tại và giá trị tối đa được thay đổi thành phần tử hiện tại
- Nếu lớn hơn thì không làm gì cả
- Sau khi lặp lại xong, max lưu trữ một số và đếm - tần suất, vì vậy chúng tôi trả về max
const mode = arr => {
const mode = {};
let max = 0, count = 0;
for[let i = 0; i < arr.length; i++] {
const item = arr[i];
if[mode[item]] {
mode[item]++;
} else {
mode[item] = 1;
}
if[count < mode[item]] {
max = item;
count = mode[item];
}
}
return max;
};
Phạm vi là sự khác biệt giữa số lớn nhất và số nhỏ nhất trong một mảng
Hãy tính dãy cho mảng sau. [2, 4, 5, 7, 1, 8, 1]
- Sắp xếp tất cả các số. [1, 1, 2, 4, 5, 7, 8]
- Trả về một mảng mới chứa các số đầu tiên và cuối cùng từ mảng đã sắp xếp. [1, 8]
Giá trị phạm vi là [1, 8]
const range = arr => {
arr.sort[[a, b] => a - b];
return [arr[0], arr[arr.length - 1]];
};
Tóm lược
Trong bài viết này, chúng ta đã học cách tính giá trị trung bình, trung bình, chế độ và phạm vi của một mảng trong JavaScript
Để lấy giá trị trung bình trong JavaScript, hãy sắp xếp một mảng số nguyên bằng phương thức sort[]
. Sau đó trả về số ở điểm giữa nếu độ dài là số lẻ hoặc giá trị trung bình của hai giá trị ở giữa trong mảng nếu độ dài là số chẵn
Số ở giữa trong dãy số đã sắp xếp được gọi là trung vị. Trung vị sẽ được chọn dựa trên số lượng phần tử trong mảng
Nếu độ dài của mảng là odd
, phần tử ở giữa được chọn làm trung vị
list = [1,2,3]
len = 3
middleIndex = floor[len / 2]; // 1
median = list[middleIndex]; // 2
Nếu độ dài của danh sách là một giá trị chẵn, thì phần tử ở giữa được chọn bằng cách cộng phần tử ở giữa với phần tử trước đó và chia kết quả cho 2
list = [1,2,3,4]
len = 4
middleIndex = floor[len / 2]; // 2
median = [list[middleIndex] + list[middleIndex - 1]] / 2; // [3+2]/2 -> 2.5
median; //2.5
Bên dưới mẫu là một đoạn trích lấy trung vị của một dãy số
Đầu tiên, chúng ta tạo hàm getSortedArray[]
để tạo một mảng đã sắp xếp mới từ mảng đầu vào và trả về. Sau đó, tạo một hàm findMedian[]
sẽ trả về giá trị trung bình của một mảng