千家信息网

php如何实现约瑟夫问题解决关于处死犯人的算法

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍php如何实现约瑟夫问题解决关于处死犯人的算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体分析如下:古代某法官要判决IV个犯人的死刑,他有一条荒唐的法律将
千家信息网最后更新 2024年11月23日php如何实现约瑟夫问题解决关于处死犯人的算法

这篇文章主要介绍php如何实现约瑟夫问题解决关于处死犯人的算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体分析如下:

古代某法官要判决IV个犯人的死刑,他有一条荒唐的法律将犯人站成一个圆圈,从第s个人开始数起,每到第D个人就拉出来处死,然后再数D个,再拉出来处决…… 直到剩下最后一个可以赦免.

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);

以上是"php如何实现约瑟夫问题解决关于处死犯人的算法"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0