您的任务是计算某些游戏中两名玩家的预期获胜机会,每个玩家都有自己的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。
因此,玩家的分数是他们赢得比赛的预期机会(以十进制表示)。
您的程序/功能应采用2个输入,即玩家A的ELO和玩家B的ELO,并打印/返回它们各自以十进制格式获胜的机会。输出必须加一,并且您必须精确到至少5个小数位(0.00000)。小数点后5位后,如果两个输出仍加起来为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中看到0.557312不太准确,因为2应当是a 1,但这很好,因为它在小数点后五位并且输出仍加起来为1。
这是无效输出的示例:
9999 9998 -> 0.5014391117091516, 0.49856088829084844
乍一看似乎满足要求,但是数字加起来等于0 1.00000000000000004,因此输出无效。
在输出中尾随零即可。
您可以假设玩家的ELO始终大于0,并且没有人的ELO大于9999。
输入和输出格式很灵活,但是输入和输出必须仍然以10为底。
因为这是代码高尔夫球,所以具有最低字节数的答案将获胜!
[9999, 998]大多数答案似乎都无法解决的测试用例。
9999, 1包括我自己的所有答案都失败了,所以我不能发布它:-(