龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

约瑟夫 php解决约瑟夫问题-关于处死犯人的算法

时间:2014-06-10 15:00来源:网络整理 作者:网络 点击:
分享到:
php解决约瑟夫问题-关于处死犯人的算法 [代码片段(34行)]
function getNum($n,$m){
    //用于把所有的数存到数组初始化
    $a = array();
    //遍历,存入数组
    for($i=1;$i<=$n;$i++){
        $a[$i] = $i;
    }
    //指针归0
    reset($a);
    while(count($a)>1){ //如果数组中项大于1,继续循环剔除元素
        //剔除规则
        for($j=1;$j<=$m;$j++){
                //如果没有达到数组的最后项
            if(next($a)){
                if($j==$m){
                    //删除m项
                               unset($a[array_search(prev($a),$a)]);
                }
            }else{
                //如果next不存在,那么指针归0
            reset($a);
            if($j==$m){
                                unset($a[array_search(end($a),$a)]);
                reset($a);
            }
        }
       }
    }
    return current($a);
}

echo getNum(5,3);

精彩图集

赞助商链接