(Writer: Người tạo tác)
Kỳ thi tuyển sinh đại học năm 2017 đang đến giai đoạn cuối cùng, khi từng trường đang dần công bố điểm chuẩn của mình. Năm nay, kỳ thì tuyển sinh đại học có rất nhiều sự đổi mới nhằm nâng cao hiệu quả và khắc phục những vấn đề còn tồn tại trong kỳ thi tuyển sinh đại học năm 2016. Trong đó phải kể đến một công cụ được giới truyền thông nhắc đến đó là “công cụ lọc ảo thí sinh” hay được biết đến với một tên khác “Phần mềm lọc ảo”. Vậy Phần mềm lọc ảo này là gì, và nguyên lý hoạt động của nó ra sao?
Với sự tò mò sẵn có, tôi lượn một một vòng Goolge nhằm tự tìm ra được nguyên lý hoạt động của phần mềm này, không chí ít thì cũng tìm ra được một vài thuật toán lõi để phần mềm này hoạt động. Nhưng câu trả lời tôi nhận được chỉ là những câu trả lời mang một khái niệm rất mơ hồ được bộ giáo dục tuyên bố với giới truyền thông, và thường nó sẽ trả lời cho câu hỏi: Kết quả, tác dụng của phần mềm này là gì? Và đây không phải thứ tôi tìm kiếm. Vì vậy tôi quyết định tự đi tìm logic để có thể rewrite lại được phần mềm này.
Và đây là câu trả lời đơn giản, dễ hiểu nhất của Cá nhân tôi dành cho các bạn có chung những trăn trở giống mình.
- Logic chạy
Sau khi tìm hiểu thì tôi nhận ra có 1 logic để chạy phần mềm này thực ra lại rất đơn giản. Tôi sẽ giải bài toán này dựa trên số nhỏ để mọi người có thể dễ hình dung.
Bước 1: Thực hiện lưu Data (SBD, tên, số điểm, nguyện vọng) của các học sinh tham dự đăng ký tuyển sinh đại học
Bước 2: Thực hiện câu lệnh Sort điểm các thí sinh, sắp xếp theo thứ tự từ cao đến thấp

(Hình minh họa logic lọc điểm của phần mềm)
Bước 3:
Khi có danh sách được sắp xếp này trong hệ thống, hệ thống sẽ thực hiện chia các em điểm từ cao đến thấp vào các trường theo chỉ tiêu đã đăng ký, trong lúc chia trường ưu tiên theo số thứ tự nguyện vọng
HS Vũ Ngọc Khánh (điểm cao nhất) > Được chia vào trường Đại học A (NV 1) > True
HS Nguyễn Vũ Nam (điểm cao thứ 2) > Được chia vào trường Đại học A (NV 1) > True
HS Phạm Thành Nam (Điểm cao thứ 3) > Được chia vào trường Đại học A (NV 1) > Fail
Lúc này phần mềm nhận được phản hồi fail của học sinh Phạm Thành Nam và sẽ tự động chuyển đến xét điểm nguyện vọng 2 của học sinh này.
HS Phạm Thành Nam (Điểm cao thứ 3) > Được chia vào trường Đại học B (NV 2) > True
………
(Phần mềm tiếp tục chạy cho đến học sinh cuối cùng trong danh sách xếp theo điểm từ cao xuống thấp của hệ thống)
Vì đặc tính chạy của phần mềm như vậy nên các trường được đăng ký nhiều ở Nguyện vọng 1,2,3 sẽ có tỷ lệ biết điểm nhanh hơn các trường top dưới (Phần này liên quan 1 chút đến tâm lý khi đăng ký: Các trường được đăng ký tại NV 1,2,3 thường là những trường tốp đầu do năm nay thí sinh có thể đăng ký nhiều nguyện vọng nên chẳng dại gì mà không thử vận may của mình với những trường tốp, có 30k thôi mà =)))))
2. Fun Fact
Nếu thực sự đọc Logic của phần này khiến bạn cảm thấy khó hiểu, thì có 1 cách giải thích đơn giản hơn rất nhiều. Hẳn các bạn ai cũng từng chơi tự game huyền thoại Solitaire trên windown.

Về cách chơi chắc sẽ không phải nói lại nữa, vì nó đã gắn liền với tuổi thơ của thế hệ chúng ta rồi. Vậy tôi sẽ liên hệ trực tiếp cách hoạt động của game với cách hoạt động của phần mềm nhé.
Các block bài bên dưới được miêu tả như các trường đại học mà các thí sinh đăng ký vào. Còn tập bài bên trên là danh sách điểm của các thí sinh.

Và công việc của ta bây giờ là sắp xếp các thí sinh vào các trường theo tiêu chí điểm từ cao đến thấp (không quan trọng thứ tự nguyện vọng). Việc sắp xếp này được thực hiện cho đến khi trường đủ chỉ tiêu và Bingo > ta đã chốt được chỉ tiêu của trường đó.
3. Hack được đỗ trượt đại học không?
Nếu phần mềm của BGD-ĐT đang chạy theo đúng logic như trên thì có 1 cách hack khiến cho kết quả chung cuộc của thí sinh có thể thay đổi mà chẳng lo sợ việc có đối chiếu lại bài thi hay không (vì kết quả vẫn giữ nguyên). Đó là hack vị trí của HS trong bảng sắp xếp data tổng điểm của học sinh theo thứ tự từ cao đến thấp.
VD: Tôi được 23,5 điểm đáng ra tôi đứng thứ 555,555 trên bảng sắp xếp data thì khi đó những trường tôi đăng ký đã bị chiếm hết chỗ rồi, do những thằng cao hơn tôi đã được xếp trước vào các chỉ tiêu của các trường đó và không còn chỗ cho tôi.
Khi hack được lên vị trí thứ 3, đương nhiên tôi được tôi sẽ được xét để sắp xếp vào các vị trí còn trống trước cả những thằng cao hơn tôi trong bảng data và khi đó thì chỗ trống còn rất nhiều nhé!
Và cũng đương nhiên là khi tôi hack được như thế, thì tôi đi học đại học làm gì nữa, có bị đuổi thì cũng đầy công ty rải thảm ra mời làm.