$$\bar{x}=\frac{\sum_{i=1}^n{x_i}}{N}$$
Viết hàm tính trung bình (Mean) của một mảng số (mean)
Ví dụ: x = [3, 2, 7, 4, 8]
Kết quả trả về giá trị trung bình
$$\bar{x} = \frac{3+2+7+4+8}{5}=4.8$$
$$S^2=\frac{\sum_{i=1}^n{(x_i- \bar{x})^2}}{n-1}$$
Viết chương trình nhập vào 1 mảng các số, tính phương sai mẫu của danh sách trên
Ví dụ: x = [3, 2, 7, 4, 8]
Kết quả trả về giá trị của phương sai mẫu:
$$S^2=\frac{(3-4.8)^2+(2-4.8)^2+(7-4.8)^2+(4-4.8)^2+(8-4.8)^2}{4}=6.7$$
$$S=\sqrt{\frac{\sum_{i=1}^n{(x_i- \bar{x})^2}}{N-1}}$$
Viết chương trình nhập vào 1 mảng các số, tính phương sai mẫu của danh sách trên
Ví dụ: x = [3, 2, 7, 4, 8]
Kết quả trả về giá trị của phương sai mẫu:
$$S=\sqrt{\frac{(3-4.8)^2+(2-4.8)^2+(7-4.8)^2+(4-4.8)^2+(8-4.8)^2}{4}}=2.588435821$$
Viết chương trình nhập vào 2 vector, tính khoảng cách giữa 2 vector đó bằng công thức manhattan
$$d_{\text{Manhattan}} = \sum_{i=1}^{n} |x_i - y_i|$$
Ví dụ:
x = [3, 2, 7, 4, 8]
y = [4, 3, 2, 5, 9]
Kết quả trả về
$$d_{\text{Manhattan}}=9$$
Viết chương trình nhập vào 2 vector, tính khoảng cách giữa 2 vector đó bằng công thức Euclidan
$$d_{\text{Euclidean}} = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}$$
Ví dụ:
x = [3, 2, 7, 4, 8]
y = [4, 3, 2, 5, 9]
Kết quả trả về
$$d_{\text{Euclidan}}=5.385$$
$$Cov_{x,y}=\frac{\sum_{i=1}^n{(x_i-\bar{x})(y_i-\bar{y})}}{N-1}$$
Viết chương trình nhập vào 2 mảng các số, tính hiệp phương sai mẫu của 2 danh sách trên
Ví dụ:
x = [3, 2, 7, 4, 8]
y = [4, 3, 2, 5, 9]
Kết quả trả về giá trị hiệp phương sai mẫu:
$$Corr_{x,y}=\frac{Cov_{x,y}}{S_x*S_y}=\frac{\sum_{i=1}^n{(x_i-\bar{x})(y_i-\bar{y})}}{\sqrt{\sum_{i=1}^n{(x_i- \bar{x})^2} * \sum_{i=1}^n{(y_i- \bar{y})^2} }}$$
Viết chương trình nhập vào 2 mảng các số, tính hệ số tương của 2 danh sách trên
Ví dụ:
x = [3, 2, 7, 4, 8]
y = [4, 3, 2, 5, 9]
Kết quả trả về giá trị hệ số tương quan mẫu:
$$Corr_{x,y}=\frac{(3-4.8)(4-4.6)+(2-4.8)(3-4.6)+(7-4.8)(2-4.6)+(4-4.8)(5-4.6)+(8-4.8)(9-4.6)}{2.588435821 *2.701851217 }=0.486160965 $$
Nhập và 2 mảng một chiều, tính accuracy theo công thức sau
$$\text{Accuracy} = \frac{\sum_{i=1}^{n} \mathbb{I}(a_i = b_i)}{n}$$
Tức là đếm số cặp trùng nhau
Ví dụ:
x = [0, 0, 0, 1, 1, 0, 0, 1]
y = [0, 1, 0, 1, 1, 0, 0, 1]
Kết quả
$$\text{Accuracy} = \frac{7}{8}=0.875$$
Nhập vào 2 mảng 1 chiều, tính Confusion matrix
Ví dụ:
yActual = [0, 0, 0, 1, 1, 0, 0, 1]
yPredict = [0, 1, 0, 1, 1, 0, 0, 1]
Output
| Confusion Matrix | Actual | ||
| 0 | 1 | ||
| Predict | 0 | 4 | 0 |
| 1 | 1 | 3 | |
Nhập vào số tiền cần đổi, in ra kết quả số tờ đổi được bao gồm các loại tiền 50đ, 20đ, 10đ, 5đ, 2đ, 1đ
Yêu cầu: Sử dụng mảng 1 chiều và vòng lặp để in ra số tờ tiền đổi được
| Input | Output | |||||
|---|---|---|---|---|---|---|
| 199 | 50đ | 20đ | 10đ | 5đ | 2đ | 1đ |
| 3 | 2 | 0 | 1 | 2 | 0 | |
Viết hàm (Shuffle) tạo ra 1 chuỗi ngẫu từ chuỗi: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ví dụ tạo hàm Shuffle| 1 Kết quả trả về chuỗi ngẫu nhiên | XNYAHPOGZQWBTSFLRCVMUEKJDI |
|---|
Viết hàm tạo một chuỗi ngẫu nhiên có chiều dài bất kỳ RandomString(int len) từ các mẫu ký tự sau: abcdefghijklmnopqrstuvwxyz0123456789
Tạo class SubstitutionCipher để mã hóa thay thế các ký tự
Bước 1: Tạo keyEncrypt chuỗi ký tự ngẫu nhiên để mã hóa
Encrypt| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X | N | Y | A | H | P | O | G | Z | Q | W | B | T | S | F | L | R | C | V | M | U | E | K | J | D | I |
Bước 2: Tạo keyDecrypt từ chuỗi keyEncrypt
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| D | L | R | Y | V | O | H | E | Z | X | W | P | T | B | G | F | J | Q | N | M | U | S | K | A | C | I |
Bước 3: Tạo hàm mã hóa: Encrypt(string text)
Bước 4: Tạo hàm giải mã: Decrypt(string text)
Giả sử tại công ty M có tài liệu về chi phí bảo trì máy móc thiết bị trong năm 2024 như sau
| Tháng | Số giờ lao động trực tiếp (ĐVT: giờ) X | Chi phí bảo trì (ĐVT: 1.000 đồng) Y |
|---|---|---|
| 1 | 1.100 | 2.650 |
| 2 | 1.000 | 2.500 |
| 3 | 1.300 | 3.150 |
| 4 | 1.150 | 2.700 |
| 5 | 1.400 | 3.350 |
| 6 | 1.250 | 2.900 |
| 7 | 1.100 | 2.650 |
| 8 | 1.200 | 2.900 |
| 9 | 1.350 | 3.250 |
| 10 | 1.450 | 3.400 |
| 11 | 1.150 | 2.700 |
| 12 | 1.500 | 3.500 |
Tính giá trị trung bình
| Số giờ lao động trực tiếp trung bình $$\bar{X}$$ | Chi phí bảo trì trung bình $$\bar{Y}$$ |
|---|---|
| 1.245,833 | 2.970,833 |
$$a = \frac{\sum_{i=1}^n{(X_i-\bar{X})(Y_i-\bar{Y})}}{\sum_{i=1}^n{(X_i-\bar{X})^2}} = \frac{583.541,7}{267.291,7} = 2,183164$$
$$b=\bar{Y} - a \bar{X} = 2.970,833 - 2,183164 * 1.245,833 = 0,250974$$
Phương trình dự đoán chi phí bảo trì là Y= 2,183164 X + 0,250974
$$x_{scale}=\frac{x-x_{min}}{x_{max}-x_{min}}$$
$$x=x_{scale}({x_{max}-x_{min})+x_{min}}$$
Ví dụ| Input | [3, 7, 2, 5, 9, 4] |
|---|---|
| Transform | [0.142857143, 0.714285714, 0, 0.428571429, 1, 0.285714286] |
| Inverse | [3, 7, 2, 5, 9, 4] |
Công thức tính chuyển đổi (transform scale)
$$scaler=\frac{x}{|x_{max}|}$$
Công thức chuyển đổi nghịch đảo (inverse scale)
$$x = scaler * |x_{max}|$$
Ví dụ| Input | [3, -7, 2, 5, 9, 4] |
|---|---|
| Transform | [0.333333333, -0.777777778, 0.222222222, 0.555555556, 1, 0.444444444] |
| Inverse | [3, -7, 2, 5, 9, 4] |
Tính trung bình mean
$$mean=\frac{\sum_{i=1}^n x_i}{n}$$
Tính độ lệch chuẩn (standard deviation)
$$standard=\sqrt{\frac{(x_i-mean)^2}{n-1}}$$
Công thức tính chuyển đổi (transform scale)
$$scaler=\frac{x-mean}{standard}$$
Công thức chuyển đổi nghịch đảo (inverse scale)
$$x = scaler * standard + mean$$
Ví dụ| Input | [3, -7, 2, 5, 9, 4] |
|---|---|
| Transform | [0.062696233, -1.818190752, -0.125392466, 0.43887363, 1.191228424, 0.250784931] |
| Inverse | [3, -7, 2, 5, 9, 4] |