Cho đoạn chương trìnhsau: n = input('Nhap gia tri n:'); /B = 0; C = 1;14 /for k = 1:n /B = B+(2*k+1); /C = C*k; /end /A=B/C Đoạn chương trìnhthực hiện tính biểu thức:
Trả lời:
Đáp án đúng: B
Đoạn chương trình được cho thực hiện các bước sau:
1. **Nhập giá trị n:** `n = input('Nhap gia tri n:');`
2. **Khởi tạo:** `B = 0; C = 1;`
3. **Vòng lặp for:** `for k = 1:n`
- `B = B + (2*k + 1);` Tính tổng các giá trị (2*k + 1) từ k = 1 đến n. Biểu thức này tương đương với Σ (2k + 1) với k chạy từ 1 đến n.
- `C = C * k;` Tính tích các giá trị k từ 1 đến n. Biểu thức này tương đương với n! (n giai thừa).
4. **Tính A:** `A = B / C` Tính A bằng B chia cho C.
Kết hợp các bước trên, ta có A = (Σ k=1->n (2k + 1)) / n! Điều này có nghĩa là A bằng tổng của (2k+1) từ k=1 đến n, chia cho n giai thừa.
So sánh với các đáp án:
- A. A = Σ i = 1 n ( 2i + 1 ) n ! (Sai vì tổng chia cho n! chứ không phải nhân).
- B. A = Σ i = 1 k ( 2i + 1 ) n ! (Sai vì giới hạn trên của tổng phải là n, ngoài ra tổng phải chia cho n!)
- C. Lỗi (Sai vì chương trình chạy đúng)
- D. A = Σ i = 1 n ( 2i + 1 ) k ! (Sai vì tổng chia cho n! chứ không phải k!).
Như vậy, không có đáp án nào đúng hoàn toàn. Tuy nhiên đáp án A gần đúng nhất nếu ta hiểu là A = (Σ i = 1 n ( 2i + 1 ))/ n !
Do đó, ta chọn đáp án A và hiệu chỉnh lại cách hiểu.





