dota2吧 关注:6,328,849贴子:175,888,108
  • 3回复贴,共1

别的不说了,你们知道到底胜多少场才能保证出线么?

取消只看楼主收藏回复

此方给我力量


IP属地:新加坡1楼2014-07-11 12:14回复
    昨天看到某伪数学帝分析,感觉很不靠谱。自己用数学分析,发现分析不明白。。。
    因为大家讨论的什么积分总和为120胜场,只是必要(?)条件,并非充分必要条件。就好像不可能有两个队积15分,也不可能有两个队0分。
    所以单纯分配120这个数字到16个组中,是不对的。
    楼主学了点编程,就遍了个。大家看看就好。
    语言php,yii 框架。


    IP属地:新加坡2楼2014-07-11 12:15
    回复
      伪随机结果:
      最多赢9场,最少赢5场,即可排名第10 (角标为9,因为从0单排。。).
      例如: 9场
      0 => 11
      1 => 10
      2 => 9
      3 => 9
      4 => 9
      5 => 9
      6 => 9
      7 => 9
      8 => 9
      9 => 9
      10 => 6
      11 => 6
      12 => 5
      13 => 4
      14 => 3
      15 => 3
      5场
      0 => 11
      1 => 10
      2 => 10
      3 => 10
      4 => 10
      5 => 9
      6 => 9
      7 => 9
      8 => 8
      9 => 5
      10 => 5
      11 => 5
      12 => 5
      13 => 5
      14 => 5
      15 => 4


      IP属地:新加坡3楼2014-07-11 12:23
      回复
        附上程序,可以看出,我是每一场都判断胜负然后给分的。
        对于对角线,请无视之。
        <?php
        $resultTable=array();
        $upper=0;
        $lower=15;
        for($time=0;$time<10000;$time++){
        $resultTable=array();
        for($team=1;$team<=16;$team++){
        for($j=1;$j<=16;$j++){
        if(!isset($resultTable[$team][$j]) ){
        if($team == $j){
        $resultTable[$team][$j]=0;
        }else{
        if(mt_rand(0, 1) ==0){
        $resultTable[$team][$j]=0;
        $resultTable[$j][$team]=1;
        }else{
        $resultTable[$team][$j]=1;
        $resultTable[$j][$team]=0;
        }
        }
        }
        }
        }
        $resultArray=array();
        for($team=1;$team<=16;$team++){
        $resultArray[$team]=0;
        for($j=1;$j<=16;$j++){
        $resultArray[$team] += $resultTable[$team][$j];
        }
        }
        rsort($resultArray);
        $upper=$resultArray[9]>$upper? $resultArray[9]:$upper;
        $lower=$resultArray[9]<$lower?$resultArray[9]:$lower;
        if($resultArray[9]>9){
        CVarDumper::dump($resultArray,10,true);
        var_dump('
        ');
        for($team=1;$team<=16;$team++){
        for($j=1;$j<=16;$j++){
        var_dump($resultTable[$team][$j]);
        }
        var_dump('
        ');
        }
        }
        if($resultArray[9]<6){
        CVarDumper::dump($resultArray,10,true);
        var_dump('
        ');
        for($team=1;$team<=16;$team++){
        for($j=1;$j<=16;$j++){
        var_dump($resultTable[$team][$j]);
        }
        var_dump('
        ');
        }
        }
        }
        var_dump('
        ');var_dump($upper);var_dump("Lower is: ");var_dump($lower);
        die();
        ?>


        IP属地:新加坡5楼2014-07-11 12:29
        回复