Sportlinkvt
Thành viên mới

- Tham gia
- 29/6/24
- Bài viết
- 1
- Được thích
- 0
mình đang cần phần mềm cho giải đồng đội cầu lông cho 32 đội thi đấu vòng tròn tính điểm
Theo bạn, mỗi đối đấu 31 trận?mình đang cần phần mềm cho giải đồng đội cầu lông cho 32 đội thi đấu vòng tròn tính điểm
Có thể hơn nữa. Đây là giải đồng đội, hai đội đấu với nhau không hẳn là một trận.Theo bạn, mỗi đối đấu 31 trận?
Một sân đấu cầu lông, 1 ngày đấu được ít nhất 3 trận sáng chiều tối. Một trung tâm thể dục thể thao 3, 4 sân, 1 ngày cho là 10 trận. Ba ngày hết 1 vòng đấu 31 trận. Nếu 2, 3 trung tâm, thì 1 hoặc 2 ngày là 1 vòng đấu. Tổng cộng 16 vòng đấu thì kéo dài 1, 2 tháng.Không thể nào cho một đội chạm mặt đủ 31 đội còn lại. Cứ tính con số bài liệt của số chạm mặt (496) đã rợn người.
Có lẽ thớt muốn nói cái ấy....
Bóng đá chuyên nghiệp các câu lạc bộ ở các quốc gia châu Âu chắc cũng cỡ 20 đội (380 trận), còn tổ chức vòng tròn 2 lượt tính điểm mà, vì 20 đội đó có ít nhất 20 sân bóng. Một mùa bóng của họ cũng vài tháng.
Nếu không biết quy luật thì chỉ có thể liệt kê các cặp đấu (496 cặp). Còn muốn sắp lịch thì phải có đủ thông tin và điều kiện như: Số sân, số trung tâm, số trận 1 ngày, tài nguyên về thành phần ban tổ chức, số lượng trọng tài, thời gian nghỉ giữa 2 trận, đội gần đội xa, ...Mà cái này làm sao mà giúp thể hiện được.
Đúng anh, nghe đơn giản nhưng khi tổng hợp các yếu tố khác là khó;Nếu không biết quy luật thì chỉ có thể liệt kê các cặp đấu (496 cặp). Còn muốn sắp lịch thì phải có đủ thông tin và điều kiện như: Số sân, số trung tâm, số trận 1 ngày, tài nguyên về thành phần ban tổ chức, số lượng trọng tài, thời gian nghỉ giữa 2 trận, đội gần đội xa, ...
Tôi nghĩ thiết kế bảng 31 cột cho 31 vòng đấu, mỗi vòng có 16 trận (dòng) sẽ hơp lý.Random đội thì random ở danh sách, sau đó tôi có thể sắp như sau:
View attachment 302087
Dòng 1 có 31 cặp, dòng 2 có 30 cặp, dòng 3 có 29 cặp, giảm dần cho đến hết.
Sau đó nếu 1 ngày 10 trận thì lấy từ trái qua phải 10 cặp đấu, thiếu thì xuống dòng lấy tiếp. Khoảng cách nghỉ giữa 2 trận của 1 đội thì gia giảm.
làm vậy được với điều kiện đầy đủ thông tin như bài 8 tôi có nêu, còn bài 10 là tôi làm kiểu kết quả tạm. Từ đó muốn 31 cột 16 dòng thì phải copy tay.Tôi nghĩ thiết kế bảng 31 cột cho 31 vòng đấu, mỗi vòng có 16 trận (dòng) sẽ hơp lý.
Lập bảng 31 cột với 16 dòng hợp lý hơn nhiều, vấn đề là làm cách nào có được bảng ấyTôi nghĩ thiết kế bảng 31 cột cho 31 vòng đấu, mỗi vòng có 16 trận (dòng) sẽ hơp lý.
Vấn đề lớn của sắp lịch là sắp ngày thi đấu cho từng cặp đấu chứ không phải liệt kê kiểu nào, bao nhiêu dòng. Sắp tạm như bài 10 có thể tóm 10 hoặc 15 trận bỏ vào 1 ngày, còn sắp 31 cột 16 dòng thì đẹp nhưng kho tách ngày hơn.Lập bảng 31 cột với 16 dòng hợp lý hơn nhiều, vấn đề là làm cách nào có được bảng ấy![]()
Trong 1 ngày số trận đấu của 1 đội phải đều nhau, tránh trường hợp vài đội đấu 2 trận vài đội đấu chỉ 1 trận sẽ ảnh hưởng tới kết quả thi đấuVấn đề lớn của sắp lịch là sắp ngày thi đấu cho từng cặp đấu chứ không phải liệt kê kiểu nào, bao nhiêu dòng. Sắp tạm như bài 10 có thể tóm 10 hoặc 15 trận bỏ vào 1 ngày, còn sắp 31 cột 16 dòng thì đẹp nhưng kho tách ngày hơn.
Anh xem lại hình ở bài 10, già sử 1 ngày 3 trung tâm đấu 9 trận. Cách tóm 9 cặp bỏ vào 1 ngày là lấy từ trái qua phải dòng đầu, được 3 trung tâm và 1 ngày, còn 4 cặp thì lấy tiếp 5 cặp ở dòng kế. Cứ như vậy đến hết. Nếu trường hợp 9 cặp trong đó có trùng đội thi đấu 2, 3 trận thì ngày sau sẽ cách ngày trước 1 khoảng thời gian nghỉ.Trong 1 ngày số trận đấu của 1 đội phải đều nhau, tránh trường hợp vài đội đấu 2 trận vài đội đấu chỉ 1 trận sẽ ảnh hưởng tới kết quả thi đấu
Theo bài 10 những ngày đầu 1 đội đấu 2 trận đội đầu và cuối chỉ đấu 1 trận, những ngày sau chỉ đấu 1 trậnAnh xem lại hình ở bài 10, già sử 1 ngày 3 trung tâm đấu 9 trận. Cách tóm 9 cặp bỏ vào 1 ngày là lấy từ trái qua phải dòng đầu, được 3 trung tâm và 1 ngày, còn 4 cặp thì lấy tiếp 5 cặp ở dòng kế. Cứ như vậy đến hết. Nếu trường hợp 9 cặp trong đó có trùng đội thi đấu 2, 3 trận thì ngày sau sẽ cách ngày trước 1 khoảng thời gian nghỉ.
Sự sắp xếp của bảng tạm đó và cách gán ngày đó khiến cho không đội nào phải thi đấu 2 trận trong 1 ngày.
Sub LichThiDauVongTron()
Dim res$(), N&, sR&, i&, j&, k&, d&, t&
Const sDoi& = 32
If sDoi Mod 2 = 1 Then N = sDoi Else N = sDoi - 1
sR = sDoi \ 2
ReDim res(1 To sR, 1 To N)
For j = 1 To N
k = j - 1
d = N
For i = 1 To sR
If k = N Then k = 1 Else k = k + 1
d = d - 2
t = ((k + d - 1) Mod N) + 1
If k < t Then
res(i, j) = k & "_" & t
Else
res(i, j) = t & "_" & k
End If
Next i
If sDoi > N Then res(sR, j) = ((j + N - 2) Mod N) + 1 & "_" & sDoi
Next j
Range("B3").CurrentRegion.Offset(1).ClearContents
Range("B3").Resize(sR, N) = res
End Sub
Bài 10 tôi chụp hình nhầm, nhưng mà xem lại hình đáng lẽ đúng cũng còn sai, nên thôi.Theo bài 10 những ngày đầu 1 đội đấu 2 trận đội đầu và cuối chỉ đấu 1 trận, những ngày sau chỉ đấu 1 trận