Câu hỏi:
12/07/2024 3,073
Trung vị
Xét bài toán: Cho dãy số nguyên A = (a1, a2, …, an). Phần tử x của dãy được gọi là phần tử trung vị nếu nó lớn hơn hoặc bằng phần tử của dãy và nhỏ hơn hoặc bằng các phần tử còn lại trong dãy. Ví dụ, với A = (8, 1, 6, 3, 9, 2, 3, l, 7) trung vị là phần tử có giá trị là 5. Tìm và đưa ra giá trị của phần tử trung vị của dãy A bất kì.
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu. Khi viết xong chương trình thì đề xuất ít nhất thêm hai bộ dữ liệu để kiểm thử chương trình.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn một dòng chứa các phần tử của dãy, các số cách nhau một dấu cách.
Kết quả: Đưa ra thiết bị ra chuẩn giá trị của phần tử trung vị của dãy.
Ví dụ:
Input
Output
8 1 6 5 9 2 3 1 7
5
Trung vị
Xét bài toán: Cho dãy số nguyên A = (a1, a2, …, an). Phần tử x của dãy được gọi là phần tử trung vị nếu nó lớn hơn hoặc bằng phần tử của dãy và nhỏ hơn hoặc bằng các phần tử còn lại trong dãy. Ví dụ, với A = (8, 1, 6, 3, 9, 2, 3, l, 7) trung vị là phần tử có giá trị là 5. Tìm và đưa ra giá trị của phần tử trung vị của dãy A bất kì.
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu. Khi viết xong chương trình thì đề xuất ít nhất thêm hai bộ dữ liệu để kiểm thử chương trình.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn một dòng chứa các phần tử của dãy, các số cách nhau một dấu cách.
Kết quả: Đưa ra thiết bị ra chuẩn giá trị của phần tử trung vị của dãy.
Ví dụ:
Input |
Output |
8 1 6 5 9 2 3 1 7 |
5 |
Quảng cáo
Trả lời:
Tóm tắt bài toán (Mô hình toán học)
Cho: Dãy A gồm n số nguyên.
Yêu cầu: Đưa ra phân tử trung vị (phần tử nằm ở giữa dãy đã sắp xếp).
Thuật toán và chọn kiểu dữ liệu cho các biến
- Bước 1. Nhập số nguyên n, nhập danh sách A chứa n số nguyên.
- Bước 2. Sắp xếp danh sách A.
- Bước 3. Đưa ra phần tử A [len (A) //2].
Tham khảo chương trình sau:
Ví dụ một số bộ dữ liệu để kiểm thử chương trình:
Hot: Học hè online Toán, Văn, Anh...lớp 1-12 tại Vietjack với hơn 1 triệu bài tập có đáp án. Học ngay
- Trọng tâm Lí, Hóa, Sinh 10 cho cả 3 bộ KNTT, CTST và CD VietJack - Sách 2025 ( 40.000₫ )
- Sách - Sổ tay kiến thức trọng tâm Vật lí 10 VietJack - Sách 2025 theo chương trình mới cho 2k9 ( 31.000₫ )
- Sách lớp 10 - Combo Trọng tâm Toán, Văn, Anh và Lí, Hóa, Sinh cho cả 3 bộ KNTT, CD, CTST VietJack ( 75.000₫ )
- Sách lớp 11 - Trọng tâm Toán, Lý, Hóa, Sử, Địa lớp 11 3 bộ sách KNTT, CTST, CD VietJack ( 52.000₫ )
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Lời giải
Tóm tắt bài toán (Mô hình toán học)
Cho: n và n - 1 số nguyên a1, a2, …, an-1 . Trong đó ai ≠ aj, với i ≠ j, với mọi i.
Yêu cầu: Tìm số bị thiếu không vượt quá n.
Thuật toán và cách tổ chức dữ liệu
- Nếu có đầy đủ n số thì tổng các số sẽ là
- Vậy số còn thiếu là:
- Không cần phải dùng dãy để lưu các số nhập vào.
- Các bước của thuật toán:
+ Bước 1. Nhập n.
+ Bước 2. Nhập và tính tổng các ai
+ Bước 3. Đưa ra kết quả.
Tham khảo chương trình sau:
Lời giải
Tóm tắt bài toán (Mô hình toán học)
Cho:
- Số nguyên n, (1 105) và n số nguyên a1, a2, .., an (0 ≤ ai ≤104, i = 1, 2, .., n).
Yêu cầu:
- Xác định k là số lượng ai lớn hơn 0 và chia hết cho 3.
- Tính tổng (ai – 3)/3 với các ai tìm được.
Thuật toán và cách tổ chức dữ liệu
- Bước 1. Nhập dữ liệu vào (dùng kiểu danh sách cho dãy n số nguyên).
- Bước 2. Chuẩn bị tích luỹ số lượng và tổng: k = 0, s = 0.
- Bước 3. Duyệt với mọi i: Nếu ai > 0 và ai chia hết cho 3 thì tăng k và tích luỹ ai vào s.
- Bước 4. Đưa ra k và (s - 3k)/3.
Tham khảo chương trình sau:
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.