私の注文には多くの計算が必要であることは承知していますが、挑戦として見ていただければ幸いです。
matchup
次のような名前のテーブルがあります。
注: 各列 (を除くplayers
) のデータ型はdecimal(5,2)
+------------------------------------------------------------------+
|players player1 player2 player3 player4 player5 player6 player7|
+------------------------------------------------------------------+
|player1 NULL 47.01 52.22 47.59 47.79 43.67 47.61 |
|player2 51.34 NULL 51.76 49.29 48.22 44.46 48.16 |
|player3 46.00 46.33 NULL 41.90 40.46 41.17 39.66 |
|player4 50.34 48.39 55.65 NULL 50.47 44.89 48.48 |
|player5 50.23 49.25 56.76 46.76 NULL 47.27 47.61 |
|player6 54.96 53.77 56.92 53.33 51.36 NULL 49.07 |
|player7 51.03 50.00 58.12 49.12 50.20 48.55 NULL |
+------------------------------------------------------------------+
この表は、他のプレイヤーに対する各プレイヤーの確率 (%) を示しています。テーブルは次のように読む必要があります。たとえば、プレイヤー 1 がプレイヤー 2 に勝つ確率は 47.01% です。プレーヤーが自分自身と対戦する確率はここでは意味がなく、オッズを計算するときはそのデータを除外する必要があります。
あなたがチームのマネージャーであり、対戦相手のチームが1 人から 5 人のプレーヤーで構成されることを知っているとします。プレーヤーの名前は、次の変数$a
、$b
、$c
、$d
で与えられます$e
。たとえば、$a='player2';
$b='player4';
$c='player7'
(この場合、対戦相手のチームには 3 人のプレイヤーしかいません)。
この情報を基に、敵チームと対戦するのに最適なプレイヤーを決定し、相手チームに勝つチャンスを与えることが目標です。
この例では、各プレイヤーが対戦相手チームに勝つ確率は次のように与えられます。
player1 = mean(47.01; 47.59; 47.61) = 47.40
player2 = cannot be chosen (because it is already chosen by the other team)
player3 = mean(46.33; 41.90; 39.66) = 42.63
player4 = cannot be chosen
player5 = mean(49.25; 46.74; 47.71) = 47.87
player6 = mean(53.77; 53.33; 49.07) = 52.06
player7 = cannot be chosen
この結果は、値が降順の連想配列として事前設定されている必要があります。
$result = array(
'player6' => '52.06',
'player5' => '47.87',
'player1' => '47.40',
'player3' => '42.63'
);
このテーブルは単なる抜粋であることに注意してください。コードでは、テーブルに 7 人以上のプレイヤーが参加する可能性があることを考慮する必要があります。
どんな助けでも感謝します!