問題タブ [tournament]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
122 参照

performance - トーナメント スケジューリング アルゴリズムの開始点

これは、日付/時間/場所を含むスケジュール内での対戦のパフォーマンスと最適な配置に関する質問です。

スケジュール グリッド (日付/時間/場所) を用意し、すべての対戦から開始して、グリッド内でそれらの対戦のスケジュールを設定するのに最適な場所を生成しました。

#1日付/時間/場所でグリッドを繰り返し、そのスポットに一致する最初のゲームを見つけます.

#2 対戦リストを反復し、スケジュール グリッドで最適な場所を決定します。

パフォーマンスとともに可能な限り最高の結果をもたらすのはどれですか?

0 投票する
1 に答える
105 参照

algorithm - ゲームを均等に複製して、参加者ごとに最大額に達する

私は、8 チームに必要なすべてのゲーム (参加者ごとに 7 ゲーム) を作成するラウンド ロビン トーナメントを開催しています。ただし、参加者ごとに 10 ゲームが必要です。つまり、マッチアップを複製する必要があり、その上、1 と 5 は互いにプレイできません。以下のデータから、参加者ごとに生成したゲーム (ゲームの数) を、作成された順序 (ラウンド) で確認できます。

私は、マッチアップを複製し、マッチアップを 3 回複製し、参加者ごとに 10 ゲームを保持し、1 と 5 が互いにプレイしないようなマッチアップがないように、マッチアップを均等に分配するための最善の方法を見つけようとしています。これを理解する方法についての提案は役に立ちます。これは、他の可能性がまだ機能する一般的なソリューションである必要もあります。

0 投票する
1 に答える
630 参照

c# - ラウンドでマッチアップを均等に配置するための最適なアルゴリズム

以下に示すように、任意の数の対戦を取り、ラウンドごとに均等にグループ化し、可能であればそれぞれが 1 回ずつ参加できるアルゴリズムが必要です。8チームと3チームのラウンドごとに、以下の対戦を生成しました. ラウンドを埋めるのに問題があり、最後のラウンドに行けない孤立したゲームが残っています。

現在、ラウンドは任意ですが、各参加者は各ラウンド (1、2、3、4、5、6、7、8) で見つけることができることがわかります。現在、これらの対戦は削除または追加でき、以下で生成された後にランダムに並べ替えることができます。したがって、それらを均等に分散させ、後日ラウンドを見つける必要があります。ゲームが追加/変更/変更される可能性があるため、元のラウンドを保存することはできません。削除されました。

このアルゴリズムは一般的であり、毎回ラウンドごとに最適に適合する必要があります。チームごとの対戦数が不均等である場合、他のチームと比較して余分なラウンドがある可能性があることも考慮に入れる必要があります。これも高性能である必要があります。

これを完了する方法について、C# .NET または他の言語の疑似コードを探しています。

8チーム、各10試合

3 チーム、各 2 ゲーム

0 投票する
4 に答える
564 参照

java - 「トーナメント」を使用して配列から最大 n 個の数値を取得する (Java)

長さ10の配列があります:

0 から 9 までの 2 つの乱数 (たとえば 4 と 6) を生成します。次に、4 番目と 6 番目の要素 (7, 0) をチェックし、「勝者」はより大きい数です。したがって、7 が勝者配列に入ります (合計で 5 勝者):

残りの 2 つの数字 (敗者を含む) をペアにして、勝者を Winners 配列に入れたいと思うたびに。

これを行う最も簡単な方法は、サイズ n の非固定サイズ配列を使用し、「population」から勝者を削除して「winners」に入れることです。次に、1 から n-1 までの 2 つの乱数を生成して、プロセスを続行できます。

Javaで固定サイズの配列を使用してこれを行うにはどうすればよいですか? 「勝者」の数字を無視して、配列から 2 つの数字を選択するにはどうすればよいですか?

0 投票する
2 に答える
211 参照

date - 国ごとに「平均」タイムゾーンはありますか?

できるだけ多くの登録プレイヤーにとって 便利な開始時間で、国ごとに 1 つのオンライン マルチプレイヤー ゲーム トーナメントをスケジュールしたいと考えています。

UTC に基づくグローバルな開始時刻は、多くの国にとって不便です。たとえば、17:00 UTC は、米国では問題ありませんが、オーストラリアでは問題ありません。

したがって、各国に独自の開始時刻 (たとえば 17:00) を持たせたいと思いますが、何らかの方法でその国の現地時間に基づいています。問題は、多くの国が複数のタイム ゾーンを持っていることです。

国ごとのタイムゾーンの平均を取ることをお勧めしますか? たとえば、米国では、開始時間は国の中央にある場合は 17:00 で、各海岸にある場合は +/- 2 時間です。

さらにタイムゾーンごとにユーザーを分類し、国ではなくタイムゾーンごとに別々のトーナメントを開催することもできますが、それでは設計がさらに複雑になり、トーナメントが複数のミニトーナメントに延長されます。つまり、あなたの国のタイムゾーン A でトーナメントに勝った場合でも、あなたの国が国/国内の勝者と宣言されるには、タイムゾーン B、C などの勝者を倒す必要があります。

ユーザーがこれらすべてを理解しているかどうかは気にしていません (もちろん)。プレイする時間になったら、通知を表示するだけです。エンゲージメントを維持するために都合のよい時間を選ぶことに重点を置いています。

以前にこの問題に対処した人はいますか? どのように「解決」しましたか?

ご意見ありがとうございます。

0 投票する
1 に答える
1974 参照

java - シングルエリミネーショントーナメントアルゴリズム

私はこの分野に不慣れで、シングル エリミネーション トーナメントのテクニックを実装する Java アプリケーションを実行したいと考えていました。これにより、プレーヤーの名前とそのクラブをインポートし、アプリが (アルゴリズムを介して) シングル エリミネーション トーナメント ブラケットを作成できるようになります。特定の基準に基づくプレーヤーの名前。たとえば、同じクラブの 2 人のプレーヤーは互いに対戦できません。または、以前のチャンピオンシップで優勝した 2 人のプレーヤーは互いに対戦できません....など

とにかく、どうすればそのようなアルゴリズムを開始できますか?

0 投票する
1 に答える
451 参照

google-apps-script - トーナメント ブラケットを作成するための Google Apps スクリプトの実行中にエラーが発生しました

Google スプレッドシートを使用してトーナメント ブラケットを作成するには、この Google Apps Script チュートリアルに従ってください: https://developers.google.com/apps-script/articles/bracket_maker?hl=en

スクリプトを実行すると、次のエラー メッセージが表示されます。

Google フォームから生成するプレーヤー リストを使用して、Google スプレッドシートからトーナメント ブラケットを作成する簡単な方法が必要です。誰かがこれをしましたか?

これは彼らのスクリプトコードです:

0 投票する
2 に答える
347 参照

c# - トーナメントブラケットを使用して最小数を見つける

私は、トーナメント ブラケットを通して最小の数を見つけなければならないプログラムを書いています。たとえば、配列があります

隣同士の数字を比較して、最小のものを選択する必要があります。( min(4, 2) -> 2min(1, 3) -> 1、そして 1 と 2 を比較しています。1 が最小なので勝者ですが、2 と 1 を比較することはできません。a[0] と1、a[2] と a[3]だけです。一般的に a[2*i] with a[(2*i)+1] for(int i=0; i<a.Length/2; i++)<- このようなもの

最初の質問: n 個の数がある場合、ツリー全体は 2n-1 個の括弧で構成されます。4 つまたは 7 つの要素の配列を作成する必要がありますか? 4 がより良いオプションのようです。

2 番目の質問: 4 と 2 を比較していて、2 の方が小さい場合、a[0] = 2 にし、1 と 3 を比較しているときに1 = 1 にする必要がありますか? 最後に a[0] を1と比較し、最小の数値を a[0] に入れますか? 一時的な int が必要になる場合があります。

最後の質問: 最も簡単な方法で何を提案しますか? このアルゴリズムに関する情報はほとんど見つかりませんでした。作業アルゴリズムに私の心を向けていただければ幸いです。

ここに画像の説明を入力

それほど多くはありませんが、コードを投稿しています:

私がうまくやっている点と、何を改善すべきかを指摘できますか?