あなたの仮定では、プレーヤー 1 と 2 が決勝でプレーし、プレーヤー 1 ~ 4 が準決勝で、プレーヤー 1 ~ 8 が準々決勝などでプレーするため、AakashM が提案したように、決勝から逆方向に再帰的にトーナメントを構築できます。トーナメントを、決勝を根とする木と考えてください。
ルート ノードでは、プレイヤーは {1, 2} です。
ツリーを再帰的に次のレベルに展開するには、ツリーの最下層にあるすべてのノードを 1 つずつ取得し、それぞれに 2 つの子を作成し、元のノードのプレーヤーの 1 人を子のそれぞれに配置します。ノードが作成されました。次に、プレーヤーの次のレイヤーを追加し、それらをゲームにマッピングして、新しく追加された最悪のプレーヤーが既存の最良のプレーヤーと対戦するようにします。
アルゴリズムの最初のラウンドは次のとおりです。
{1,2} --- create next layer
{1, _}
/ --- now fill the empty slots
{1,2}
\{2, _}
{1, 4} --- the slots filled in reverse order
/
{1,2}
\{2, 3} --- create next layer again
/{1, _}
{1, 4}
/ \{4, _}
{1,2} --- again fill
\ /{2, _}
{2, 3}
\{3, _}
/{1, 8}
{1, 4}
/ \{4, 5} --- ... and so on
{1,2}
\ /{2, 7}
{2, 3}
\{3, 6}
ご覧のとおり、投稿したのと同じツリーが生成されます。