美文网首页
PHP解决约瑟夫环问题

PHP解决约瑟夫环问题

作者: 金星show | 来源:发表于2018-12-07 14:43 被阅读0次
//方法一
function joseph_ring($n,$m){
    $arr = range(1,$n);
    $i = 0;
    while(count($arr)>1){
        $i=$i+1;
        $head = array_shift($arr);//先拿出来做判断,符合删除,不符合插入后面。保证环
        if($i%$m != 0){ //如果不是则重新压入数组
            array_push($arr,$head);//往后面补,代表报过数
        }
    }
    return $arr[0];
}
// 方法二
function joseph_ring2($n,$m){
    $arr = range(1,$n);
    $i = 1;
    while(count($arr)>1){
        foreach($arr as $k=>$v){
              if($i == $m){
                    unset($arr[$k]);
                    $i = 1;
              }else{ 
                    $i += 1;    
              }
        }
    }
    return array_values($arr)[0];
}
//方法三
function joseph_ring3($n,$m){
    $r = 0;
    for($i=2;$i<=$n;$i++){
        $r = ($r+$m)%$i;
    }
    return $r + 1;
}
echo "<br/>".joseph_ring(60,5)."<br/>";
echo "<br/>".joseph_ring2(60,5)."<br/>";

相关文章

  • PHP解决约瑟夫环问题

  • PHP解决约瑟夫环问题

    “约瑟夫环”是一个数学的应用问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它...

  • php解决约瑟夫环

    “约瑟夫环”是一个数学的应用问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它...

  • 算法面经---单向循环链表(解决约瑟夫问题)

    单向循环链表--解决约瑟夫问题 一、单向循环链表的应用场景 1.1 问题描述 Josephu(约瑟夫、约瑟夫环) ...

  • php实现约瑟夫环问题

    题目:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, ...

  • 约瑟夫环问题

    约瑟夫环问题约瑟夫环描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围...

  • 解决约瑟夫环

    本文链接:https://blog.csdn.net/m0_37907797/article/details/10...

  • Go 队列解决约瑟夫环问题

    约瑟夫环 约瑟夫环是一个数学的应用问题,具体为,已知 n 个人(以编号 1,2,3...n 分别表示)围坐在一张圆...

  • 约瑟夫环问题

    0~n-1个数排成环,每次从中删除第m个数字后,问最后剩下的数字是多少 思路:使用链表模拟环状结构,到达尾部时使其...

  • 约瑟夫环问题

    思路 递推,f(n)与f(n-1)的关系,已经f(1)已知,O(n)的复杂度求出结果。f(n) = (f(n-1)...

网友评论

      本文标题:PHP解决约瑟夫环问题

      本文链接:https://www.haomeiwen.com/subject/bnmigxtx.html