这篇文章主要介绍php如何实现约瑟夫问题解决关于处死犯人的算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阜宁企业提供专业的成都网站建设、网站制作,阜宁网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。具体分析如下:
古代某法官要判决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如何实现约瑟夫问题解决关于处死犯人的算法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
分享文章:php如何实现约瑟夫问题解决关于处死犯人的算法-创新互联
网站地址:https://www.cdcxhl.com/article46/dcdghg.html
成都网站建设公司_创新互联,为您提供品牌网站建设、动态网站、虚拟主机、网站营销、静态网站、网页设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联