あなたの仕事は、あるゲームで2人のプレイヤーがそれぞれのELOレーティングで勝つと予想される確率を計算することです。プレーヤーAにはELO R aがあり、プレーヤーBにはELO R bがあります
プレーヤーA(E a)の予想スコアは1 /(1 + 10 (R b -R a)/ 400)です。プレイヤーB(E b)にも同様の方程式があります:1 /(1 + 10 (R a -R b)/ 400)。
よりコピー可能なバージョンが必要な場合: 1 / (1 + 10^((a-b) / 400))
E a + E bは1に等しくなければなりません。
したがって、プレーヤーのスコアは、ある試合に勝つと予想される10進数のチャンスです。
プログラム/関数は、プレイヤーAのELOとプレイヤーBのELOの2つの入力を受け取り、それぞれのチャンスを10進形式で印刷/返します。出力は合計で1つでなければならず、少なくとも小数点以下5桁まで正確である必要があります(0.00000)。小数点以下5桁を超えると、2つの出力の合計が1になる場合、数字が不正確になる可能性があります。
例:
1200 2100 -> 0.005591967 0.994408033
1 1 -> 0.5 0.5
60 20 -> 0.557312 0.442688
9999 9998 -> 0.501439 0.498561
9999 1 -> 0.999999 0.000001
最後のテストケースでは、値を表すために科学的な累乗法を使用する回答もあります。これは無効です。
テストケース3 では、がa で0.557312ある2必要があるため、あまり正確ではありませんが、1小数点以下5桁であり、出力が1になるため、これは問題ありません。
これは無効な出力の例です:
9999 9998 -> 0.5014391117091516, 0.49856088829084844
これは一見要件を満たしているように見えますが、数字が合計される1.00000000000000004ため、出力は無効です。
出力の末尾のゼロは問題ありません。
プレイヤーのELOは常に0より大きく、だれも9999を超えるELOを持たないと想定できます。
入力と出力の形式は柔軟ですが、入力と出力は10進数のままでなければなりません。
これはcode-golfであるため、バイトカウントが最小の答えが勝ちます!
[9999, 998]ほとんどの回答が失敗したと思われるテストケースを追加する必要があります。
9999, 1私自身も含めてすべての回答が失敗するようですので、投稿できません:-(