首页 > 编程 > PHP > 正文

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

2019-11-21 23:09:24
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表