Создать единый турнир по ликвидации

сначала, извините за мой английский. Я сделаю все возможное, чтобы объяснить мою проблему!

Итак, я пытаюсь создать единый турнир по ликвидации с неограниченным количеством игроков.

пока я просто думаю об этом, у меня ничего нет на бумаге, я думаю, что у меня не будет проблем для турнира с силой двух (2 4 8 16 32 игроков ..), мой мозг висит на игроках, идущих прямо на раунд 2 , я не знаю, как определить это число и где их разместить.

например (с 59 игроками) например (с 59 игроками)

Я думаю, что есть формула, но я не могу ее найти, у меня есть идеи, но я думаю слишком конкретно о случае, не зная, будет ли это работать для другого.

Спасибо, если вы можете мне помочь!

    Для данного числа N найдите разницу между ним и наименьшей степенью 2, по крайней мере, равной N. Для 59 это будет 5 (64-59). Эти 5 игроков будут добавлены в расписание турниров во втором раунде.

    Этот алгоритм позволяет всем игрокам быть частью игры, когда начинается второй раунд, т. Е. Как можно раньше. Его объяснение очень просто: представьте, что изначально было 2 игрока ** N, но некоторые просто не приходили в свои игры, поэтому их противники пошли дальше без боя. )

    В качестве побочного элемента ваша формула должна учитывать, что это самые сильные игроки, которые должны войти в игру со второго раунда, а не из самых слабых. )


    Первым шагом, по-видимому, является подсчет количества игроков, которые будут участвовать в первом раунде. Теперь давайте продолжим, что метафора «пропавших игроков» – предположим, что изначально было 64 игрока, поэтому в первом раунде должно было сыграть 32 игры. Но для этих игр не было 5 игроков (64 – 59), поэтому количество реальных игр составляет 27 (64/2 – 5), а количество реальных участников первого раунда – 54 (27 * 2).

    После первого раунда в турнире останется 27 человек – к этим людям присоединятся те же 5 парней, поэтому общее число игроков 2-го тура – 32. Остальное тривиально, я полагаю. )

    На самом деле это легко распространять. Допустим, у нас есть N игроков, а наименьшая мощность 2 по крайней мере равна N равна P Теперь…

    • В первом раунде должны быть игроки (N - (P - N)) (или только (2*N - P) ).
    • Общее количество игр в первом раунде (N - P/2) .
    • По-видимому, это то же самое количество игроков, которые идут во 2-й раунд.
    • К ним присоединятся игроки (P - N) , оставшиеся без участия в первом раунде, поэтому общее количество игроков во втором раунде будет …

    N - P/2 + P - N => P - P/2 => P/2

    • … и с этого момента вы просто отправляетесь с прямым расписанием 2 ^ N игроков (как P / 2, а также P, это сила 2).

    ooh спасибо @ raina77ow, вы взорвали мой разум, так вот мои расчеты:

     64/2 = 32 59/2 = 29 ( rounded to the lower ) => nb of total player at left ( round 1 & 2) 32-29 = 3 => nb players at left going to round 2 29-3 = 26 => nb players at left going to round 1 59-29 = 30 => nb total players at right ( round 1 & 2 ) 5-3 = 2 => nb players going to round 2 at right 30-2 = 28 = nb players round 1 

    `Я думаю, что теперь я могу сделать алгоритм, если это подходит для каждого случая.