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
32 đội thì làm cái giải như đá worldcupCó 32 đội mà tổ chức thi đấu vòng tròn chưa chắc là hay & gặp phải không ít trận phát chán do chênh lệch trình độ quá mức.
Chỉ cần 7 hay 9 ngày thi đấu là xong tất:
Ngày đầu bắt thăm số TT & thi đấu theo STT;
Ngày 2 trở đi thì thắng đấu với thắng (hay hòa); Hòa đấu với hòa
& thua đấu với hòa hay với thua
& cứ thế cho các ngày còn lại;
Nếu chọn con số 7 thì đội nào thua 5 trận là vứt ra ngoài giải!
Tiếc là thi đấu cầu lông không có hòaNgày 2 trở đi thì thắng đấu với thắng (hay hòa); Hòa đấu với hòa
Ở đây, thớt có nói rõ "đấu vòng tính điểm". Như vậy thì là cách đấu trong các mùa bóng các nước Âu châu. Không phải là "giải", và cũng không phải cách chia vùng như Mẽo.32 đội thì làm cái giải như đá worldcup![]()
Ngay ở bài 1, dù chỉ 1 câu ngắn nhưng trong đó có ghi rõ:Ở đây, thớt có nói rõ "đấu vòng tính điểm".
À ha, Vậy thì Bằng điểm đấu với nhau, nếu dư dôi thì đấu với đội gần điểm nhất.Tiếc là thi đấu cầu lông không có hòa
Anh lại phát minh ra kiểu mới rồi. Người ta yêu cầu đấu vòng tròn, là vòng tròn. Cứ là đề nghị bỏ ý tưởng của người ta. Người ta khó cũng làm, tốn tiền cũng làm, chứ không đổi.À ha, Vậy thì Bằng điểm đấu với nhau, nếu dư dôi thì đấu với đội gần điểm nhất.
/(iểu này hay áp dụng trong các giải cờ vua trên thế gian; Kể cả giải tầm cỡ châu lục hay giải được FIDE cho phép & giám sát;Anh lại phát minh ra kiểu mới rồi.. . .
Bóng đá vô địch quốc gia các nước châu Âu vẫn xài kiểu vòng tròn này, mà cả 2 lượt chứ không chỉ 1 lượt. Có điều số câu lạc bộ bóng đá tùy từng nước sẽ vào khoảng 18 đến 24 (đoán vậy). Làm gì mà đã bỏ!cách đấu vòng tròn 32 đội này đã bỏ từ đầu thế kỷ rồi!
Nhấn mạnh lần nữa, đây là cầu lông, đừng so sánh với các môn khác. Cầu lông dễ tổ chức đồng giờ, đồng ngày vì sân nhỏ, 1 trung tâm thể thao có 4 sân trở lên. Một trận chỉ khoảng 1 - đến 2 tiếng là quá lắm nên 1 sân có thể tổ chức 1 ngày 3, 4 trận đấu. Nếu có 3, 4 trung tâm là có 10, 15 sân, 31 trận 1 ngày (1 vòng đấu) dư sức!/(iểu này hay áp dụng trong các giải cờ vua trên thế gian
Trái với bạn. Những loại này tôi rất khoái vì học hỏi được rất nhiều điều mà trước đây mình hầu như mù tịt.Tác giả bỏ bom lúc 13h17, rút chạy sau đó 1 phút. Phần còn lại là tổng hành dinh đang thảo luận rốt cuộc bom là bom loại nào. Hề hề.
ad thêm lun này e vs e dốt qá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
Trước đây mình tìm ra thuật toán xếp lịch thi đấu vòng tròn hoặc xếp lịch 2 giáo viên gác thi không trùng https://giaiphapexcel.com/diendan/threads/hỏi-cách-liệt-kê-tất-cả-tổ-hợp-chập-k-của-n-phần-tử.131000/page-2
Mình viết lại code gọn hơn tí
Nếu cần thì thêm phần Random thứ tự đội và thứ tự dòng từng cộtMã: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