トピック:
テニスラウンドロビンからn = 2 ^ k個の選手を持っています。ここで、次の各要件を満たすためにゲームのスケジュールを設計します:
1、各プレイヤーは、n-1と各ゲームの他のプレイヤーを時間を計る必要があります。
2、各プレイヤーのレース当日に一度だけ。
3、n-1個のラウンドロビン日間の合計。
このゲームによれば、n個の* n次元テーブルを設計することができる、順番に各列に次のプレイヤーの最初の列は毎日ゲームプレイヤを示すスケジュールを必要とします。一例として、8人の選手下:
アイデア:
方法パーティションによると、すべてのプレイヤーが2で分割することができ、n個のマッチメーキング・プレーヤーは、N / 2選手スケジュールによって決定することができます。これは、再帰的に分割プレーヤーのための2つの戦略に分け、スケジュールは明らかに直接配置することができ、2つだけの選手を知っています。
次の図は、8人の選手の試合スケジュールを示しています。
図1
アルゴリズムのステップ:
図1に示すように、ループ初期化スケジュールのプレイヤー1、図つまり最初の行を使用して。
2、スケジュールに従ってプレイヤ1、プレイヤ2を配置します。グループとして最も小さい、すなわち、毎2~4に隣接する最小単位は、図中に、ゲームプレイヤ2は、対応するプレイヤー2が、ゲームプレーヤーを維持プレーヤーを維持する日、例えば、である。1 1行目と2行番号、第2の行数コピーの最初の列の最初の行の第2列の第2列の最初の列をコピーします。順次、列3及び4、列5、6、7及び8が記載されています。
図3は、左上右下に応じてスケジュールに従ってプレーヤ1は、スケジュール3、4を配置データトップを右左下選手のコピー、データをコピーすることができます。
4.最後に、最初の4人のプレーヤーによると、全員のスケジュールが両方を配置することができます。
Javaは完全なコードを実現し、次のとおりです。
1 パッケージコンテスト; 2 。3 インポートjava.util.Scanner; 4 5。 パブリック クラスコム{ 6。 プライベート 静的スキャナスキャナ; 7 。8 パブリック 静的 ボイドメイン(文字列[]引数){ 9。 int型のK; // ノート、Nプレーヤであります数、k個のサブ問題のスケール分割数、すなわち、2 ^ K = N-の唯一の問題であるために 10 のSystem.out.println( "入力K:" ); 11。 スキャナー= 新しい新しいスキャナ(System.in); 12である K = スキャナ。 nextInt(); 13は、 INT A [] [] = 新しい新 INT [POW(2、K)+1] [POW(2、K)+1 ]。 14 テーブル(K、A)。 15 のために(int型 ; iがPOW(2、K)+1を<I ++は、I = 1 ){ 16 のために(INT J = 1; J <POW(2、k)は、J ++ ){ 17 System.out.print(A [I] [J] +」 " )。 18 } 19 のSystem.out.println([I] [POW(2 、k)を])。 20 } 21 } 22 23 静的 ボイドテーブル(INTの K、値int [] [] a)は{ 24 INT N = POW(2、K); 25 用(INT I = 1; I <= N - 、[1]私は++)Aの[I] = I; 26は、 INT 1、M =。; // Mは、各々がIから充填記録として定義されている場合、Jは充填開始位置 27の ために(INT。; S <= K S ++ S = 1 {//)パーティションサイズ 28 N- / = 2 ; 29 のために(INT T = 1; T <= N; T ++ )// T当たり対称的なユニットの数であるパーティション 30 のために(INT I = M + 1である。私は<= 2 * M; I ++ )// 制御線 31である ため(INT J = M + 1、。J <= 2 * M; J ++ ){// コントロールバー 32 [I]、[J + M * 2 *(1-T)] = [IM] [J + * 2-×m個(1-T)M]; // 値は、左上隅の右下隅に等しい 33です [ I]、[J + * M×m個-2] IM [] [J + = * 2 * M(1-Tは。)(1-T)]; // 右上隅の左下隅の値に等しい値 34である } 35 M * = 2 ; 36 } 37 } 38は、 39 静的 INT POW(INT A、INT N-){// 電力機能 40 INT RES = 1 ; 41である ため(int型 I = 0; Iは、N <; Iは++ ) 42である * = RES A。 43 リターン解像度; 44 } 45 }