From 3404035dcb9149507b0e1dd82386c5a076f310c8 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 5 Oct 2007 18:45:39 +0200 Subject: [PATCH] Oops, also remember the C++ part of the assessment. --- foorank.cpp | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/foorank.cpp b/foorank.cpp index 080798c..3ad0bb1 100644 --- a/foorank.cpp +++ b/foorank.cpp @@ -373,10 +373,29 @@ int main(int argc, char **argv) double sigma1 = atof(argv[2]); double mu2 = atof(argv[3]); double sigma2 = atof(argv[4]); - int score1 = atoi(argv[5]); - int score2 = atoi(argv[6]); - double mu, sigma; - compute_new_rating(mu1, sigma1, mu2, sigma2, score1, score2, mu, sigma); - printf("%f %f\n", mu, sigma); + + if (argc > 5) { + int score1 = atoi(argv[5]); + int score2 = atoi(argv[6]); + double mu, sigma; + compute_new_rating(mu1, sigma1, mu2, sigma2, score1, score2, mu, sigma); + printf("%f %f\n", mu, sigma); + } else { + // assess all possible scores + for (int i = 0; i <= 9; ++i) { + double newmu1, newmu2, newsigma1, newsigma2; + compute_new_rating(mu1, sigma1, mu2, sigma2, 10, i, newmu1, newsigma1); + compute_new_rating(mu2, sigma2, mu1, sigma1, i, 10, newmu2, newsigma2); + printf("10-%u,%f,%+f,%+f\n", + i, prob_score(i, mu1-mu2), newmu1-mu1, newmu2-mu2); + } + for (int i = 10; i --> 0; ) { + double newmu1, newmu2, newsigma1, newsigma2; + compute_new_rating(mu1, sigma1, mu2, sigma2, i, 10, newmu1, newsigma1); + compute_new_rating(mu2, sigma2, mu1, sigma1, 10, i, newmu2, newsigma2); + printf("%u-10,%f,%+f,%+f\n", + i, prob_score(i, mu2-mu1), newmu1-mu1, newmu2-mu2); + } + } } -- 2.39.2