Avatar
1
Lâm Văn Đời Beginner
Round Robin cơ bản
Ví dụ em muốn làm chức năng tự động giao một lớp học mới cho một giáo viên của trường theo cơ chế Round-robin (Theo em hiểm cơ bản thực toán RR có nghĩa là nó sẽ tự động chọn 1 đối tượng trong 1 danh sách đối tượng theo vòng tròn, người này chọn rồi thì lần sau sẽ không chọn nữa ).Nhưng khi em tìm hiểu sâu thì thực toán RR ko đơn giản như vậy.

Nhưng em chỉ muốn áp dụng RR 1 cách cơ bản thôi ạ.Và ko chắc cách này có phải là RR ko hay có thể do em tự định nghĩa ra .Cụ thể là  đối với chức năng tự động giao lớp cho 1 giáo viên thì sẽ là :

  • Truy vấn vào bảng Giáo viên  => tìm và lấy 1 giáo viên đang dạy ít lớp nhất => tìm được 1 giáo viên =>  tự động giao cho giáo viên đó lớp mới.
  • Nếu trong bảng Giáo viên có  nhiều giáo viên có số lớp đang dạy ít nhất (ví dụ 2 giáo viên cùng  dạy số lượng  2 lớp và 2 lớp là thấp nhất trong trường đó) thì sẽ random chọn 1 trong 2.
  1. Mọi người cho em hỏi cơ chế ở trên em có phải là RR không ạ ? hay chỉ là do em ngộ nhận :D
  2. Nếu được thì cho em xin cách để thực hiện chức năng auto giao 1 lớp cho 1 giáo viên dạy ít lớp nhất trong trường với ạ.(Bao gồm trường hợp nhiều hơn 1 giáo viên có cùng số lớp dạy ít nhất )

Cảm ơn mọi người nhiều ạ !

  • Answer
round robin
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
  1. Round robin cũng tuỳ ý hiểu mỗi người em ạ, nhưng ý hiểu thông thường nghĩa là phân bổ lần lượt mà không có điều kiện gì. Ví dụ có 3 giáo viên A, B, C lúc này sẽ có 5 lớp: 1, 2, 3, 4, 5 thì sẽ phân bổ vòng 1 là: A:1, B:2, C:3 và rồi quay lại vòng 2 là: A;4, B:5 nghĩa là nếu các giáo viên A, B, C không nghỉ việc thì họ vẫn được phân bổ lớp mà không có điều kiện gì thêm. Em có thể tham khảo code RoR tại đây.

  1. Nếu vậy đơn giản là em có thể truy vẫn ở 1 bảng giao_vien: SELECT FROM giao_vien ORDER BY so_lop_dang_day ASC LIMIT 1 và em sẽ được giáo viên đang dạy lớp ít nhất, cách truy vấn này cũng sẽ phân bổ tương đối đều đó em ạ.
  • 0
  • Reply