Ваша задача - рассчитать ожидаемый шанс на победу для 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.
Поэтому счет для игрока - это их ожидаемый шанс выиграть какой-то матч в десятичном виде.
Ваша программа / функция должна принимать 2 входа: ELO игрока A и ELO игрока B и печатать / возвращать их соответствующий шанс на победу в десятичном формате. Выходные данные должны быть в сумме равны единице, и вы должны быть с точностью не менее 5 десятичных знаков ( 0.00000
). После 5 десятичных разрядов у вас могут быть неточные цифры, при условии, что два выхода все равно складываются в один.
Примеры:
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
, но это хорошо, потому что это после пяти десятичных разрядов, и выходные данные все равно складываются в один.
Это пример неверного вывода:
9999 9998 -> 0.5014391117091516, 0.49856088829084844
Это выглядит так, как будто это удовлетворяет требованиям на первый взгляд, но цифры суммируются 1.00000000000000004
и, следовательно, выходные данные не действительны.
Конечные нули на выходе - это нормально.
Вы можете предположить, что ELO игрока всегда будет больше 0, и никто не будет иметь ELO выше 9999.
Формат ввода и вывода гибкий, но вход и выход все еще должны быть в базе 10.
Поскольку это код-гольф , победит ответ с самым низким количеством байтов!
[9999, 998]
которого большинство ответов, кажется, не дают результатов.
9999, 1
включая мой собственный, поэтому я не могу опубликовать его :-(