Giải Vận dụng 2 trang 63 Chuyên đề Tin học 12
Đề bài
Kết hợp các hàm RAND, INT tạo 5 số nguyên ngẫu nhiên trong đoạn [10, 16].
Lời giải
Phân tích yêu cầu
Ta cần tạo các số nguyên ngẫu nhiên nằm trong đoạn $[10, 16]$, tức là các giá trị nguyên có thể nhận: $10, 11, 12, 13, 14, 15, 16$ (gồm $7$ giá trị).
a) Nhắc lại công thức tổng quát
- Hàm `RAND()` trả về một số thực ngẫu nhiên thuộc nửa khoảng $[0; 1)$.
- Để có số nguyên ngẫu nhiên trong đoạn $[a; b]$, ta dùng công thức:
$$\text{=INT(RAND()}\ast(b-a+1))+a$$
Giải thích: `RAND()*(b−a+1)` cho số thực trong $[0;\ b-a+1)$; hàm `INT` lấy phần nguyên nên được một trong các số nguyên $0, 1, \dots, (b-a)$; cộng thêm $a$ ta dời về đoạn $[a; b]$.
b) Thay số cho đoạn [10, 16]
Với $a = 10$ và $b = 16$ thì $b - a + 1 = 16 - 10 + 1 = 7$. Do đó công thức là:
$$\text{=INT(RAND()}\ast 7)+10$$
c) Tạo 5 số ngẫu nhiên
Nhập công thức trên vào ô A1, rồi sao chép (kéo thả nút điền) xuống các ô A2, A3, A4, A5:
| Ô | Công thức |
|---|-----------|
| A1 | `=INT(RAND()*7)+10` |
| A2 | `=INT(RAND()*7)+10` |
| A3 | `=INT(RAND()*7)+10` |
| A4 | `=INT(RAND()*7)+10` |
| A5 | `=INT(RAND()*7)+10` |
d) Kiểm tra lại
- `RAND()` $\in [0; 1)$ nên `RAND()*7` $\in [0; 7)$.
- `INT(RAND()*7)` nhận một trong các số nguyên $0, 1, 2, 3, 4, 5, 6$.
- Cộng $10$: kết quả nhận một trong các số $10, 11, 12, 13, 14, 15, 16$ — đúng đoạn $[10; 16]$.
Mỗi lần bảng tính tính lại (nhấn phím F9) sẽ cho một bộ 5 số nguyên ngẫu nhiên mới trong đoạn này. Ví dụ một kết quả có thể thu được: $12,\ 16,\ 10,\ 13,\ 15$.
Đáp số
Lời giải do Thư viện nhà trường biên soạn, giải và kiểm chéo độc lập theo SGK 2026-2027.