Ví dụ về xác suất xuất hiện của câu hỏi

Một phần của tài liệu Hệ thống hỗ trợ thực hành lập trình và gợi ý lộ trình thực hành (Trang 113 - 116)

A Kết quả phân loại câu hỏi môn KTLT và CTDL&GT

4.24 Ví dụ về xác suất xuất hiện của câu hỏi

Câu hỏi 1 15% Câu hỏi 2 12% Câu hỏi 3 30% Câu hỏi 4 5% Câu hỏi 5 8% Câu hỏi 6 30%

Sau khi tìm ra xác suất xuất hiện của từng câu hỏi, công việc tiếp theo cần làm là lựa chọn ngẫu nhiên một câu hỏi. Nhóm thực hiện biến đổi xác suất của mỗi câu thành tổng tích lũy của các xác suất như sau:

Bảng 4.25:Ví dụ tổng xác suất tích lũy của các câu hỏi

Câu hỏi 1 2 3 4 5 6

Xác suất xuất hiện 0.15 0.12 0.30 0.05 0.08 0.30

Tổng tích luỹ xác suất 0.15 0.27 0.57 0.62 0.70 1.00

Để lựa chọn câu hỏi, ta sẽ sinh ngẫu nhiên một số thực x trong nửa khoảng[0−1), chọn câu

hỏi có tổng tích lũylớn hơn x và gần x nhất. Ví dụ:

1. x = 0.05 => chọn câu hỏi 1. 2. x = 0.63 => chọn câu hỏi 5.

Giải thuật gợi ý câu hỏi gồm giải thuật tính xác suất xuất hiện của mỗi câu hỏi (Thuật toán 1) và giải thuật chọn câu hỏi gợi ý (Thuật tốn 2).

Algorithm 1:Tính xác suất xuất hiện của các câu hỏi.

Input:

ques_times[]: Mảng các thời điểm nộp bài của lần nộp bài cuối cùng của các câu

hỏi. Nếu câu hỏi vẫn chưa được làm thì thời điểm có giá trị là -1.0.

Output:

Mảng các xác suất xuất hiện của các câu hỏi.

begin

N←−ques_scores.length;

currentTime←−GET_CU RRENT_T IME();

s[N]; /* create new array s of size N */

fori=0toN−1do

ifques_times[i] ==−1then s[i]←− −1;

else s[i]←−currentTimeques_times[i];

end

maxS←−MAX(s);

fori=0toN−1do

ifs[i] ==−1then s[i] =maxS∗2; /* Unassigned question */

end

/* Calculate the probabilities */;

sumS←−SU M(s); p[N];

fori=0toN−1do p[i]←−s[i]/sumS;

return p;

Algorithm 2:Chọn câu hỏi gợi ý.

Input:

p[]: Mảng các xác suất xuất hiện của các câu hỏi. Output:

Chỉ số của câu hỏi được đề xuất.

begin

cumSumP[N];

cumSumP[0]←−p[i];

fori=1toN−1documSumP[i]←−cumSumP[i−1] +p[i]; idx←−0;

/* Randomly generates a floating-point in [0−1) */

x=RANDOM_FLOAT(0,1);

whilex>=cumSumP[idx]do idx+ +;

returnidx

end

4.3.11 Thiết kế tính năng gợi ý câu hỏi

Trong mục này, nhóm tác giả sẽ trình bày tính năng gợi ý câu hỏi dựa trên những mô tả trong 2 mục trước. Sơ đồ hoạt động (activity diagram) của tính năng được mơ tả trong hình 4.25.

Một phần của tài liệu Hệ thống hỗ trợ thực hành lập trình và gợi ý lộ trình thực hành (Trang 113 - 116)

Tải bản đầy đủ (PDF)

(159 trang)