【问题标题】:ELO rating for simple hot-or-not sorting?简单热或不分类的 ELO 评级?
【发布时间】:2012-05-03 01:45:12
【问题描述】:

我希望用户使用 hot-or-not 系统对大约 30 个项目的列表进行排序。该列表是一个小的定义数字,只需要由单个用户排序。我可以让用户拖放一个排序列表,但热或不热系统会更好。

从一些研究来看,ELO 评级似乎是最快的选择。

如何使用这个 PHP 类? https://github.com/Chovanec/elo-rating

【问题讨论】:

    标签: php sorting


    【解决方案1】:

    我会自己写,非常简单。

    //first i calculate the win probability.
    $a_win_prob = 1/(1+pow(10,($b_elo - $a_elo)/400));
    $b_win_prob = 1/(1+pow(10,($a_elo - $b_elo)/400));
    
    //than i make a K value for a and b
    if($a_elo < 2100){
        $a_k = 20;  
    }elseif($a_elo > 2300){
        $a_k = 10;
    }else{
        $a_k = 15;  
    }
    
    if($b_elo < 2100){
        $b_k = 20;  
    }elseif($b_elo > 2300){
        $b_k = 10;
    }else{
        $b_k = 15;  
    }
    
    //than i calculate both elo values.
    if($win_side === "a"){
        $a_elo_new = $a_elo + $a_k*(2*$a_win_prob);
        $b_elo_new = $b_elo - $b_k*(2*$b_win_prob);
    }else{
        $a_elo_new = $a_elo - $a_k*(2*$a_win_prob);
        $b_elo_new = $b_elo + $b_k*(2*$b_win_prob);
    }
    //than i can put them in a database
    

    这是 elo 评级系统的基本设置 它比类简单得多。 你甚至可以将其重写为一个函数。

    我希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2014-11-20
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 2014-07-19
      • 2021-04-03
      • 2019-04-13
      • 2019-08-15
      相关资源
      最近更新 更多