Алгоритм подсчета количества матчей в швейцарской системе турнира
Мне нужно подсчитать количество матчей в турнире по швейцарской системе, есть ли какая-нибудь библиотека в php, которая может мне помочь?
1 ответ
Из описания в Википедии кажется, что именно определение пар является трудной задачей. Общее количество матчей зависит только от количества сыгранных раундов. Если мы предположим, что количество раундов определяется логарифмом числа 2 (n) по основанию-2, то число совпадений (m) будет следующим:
m = ceil(log2 n) * floor(n / 2)
Таким образом, для 10 игроков вам нужно 4 раунда, по 5 матчей в каждом, следовательно, 20 матчей. При нечетном количестве игроков будет прощание, поэтому для 11 игроков количество матчей одинаково.