Home  >  Article  >  Backend Development  >  php Joseph problem solving algorithm about executing prisoners, php Joseph prisoner algorithm_PHP tutorial

php Joseph problem solving algorithm about executing prisoners, php Joseph prisoner algorithm_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:01:05729browse

php Joseph's problem solving algorithm for executing prisoners, php Joseph's prisoner algorithm

This article describes the example of php Joseph's problem solving algorithm for executing prisoners. Share it with everyone for your reference. The specific analysis is as follows:

In ancient times, a judge wanted to sentence IV prisoners to death. He had a ridiculous law that made the prisoners stand in a circle, counting from the sth person, and every time they reached the Dth person, they would be pulled out and executed, and then count D more , and then pull them out and execute them... until the last one left can be pardoned.

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

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/972650.htmlTechArticlephp Joseph problem solving algorithm about executing prisoners, php Joseph prisoner algorithm This article tells the example of php Joseph problem solving about execution Prisoner's algorithm. Share it with everyone for your reference...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn