Home  >  Article  >  Backend Development  >  PHP Joseph's Problem Solving Algorithm for Execution of Prisoners_PHP Tutorial

PHP Joseph's Problem Solving Algorithm for Execution of Prisoners_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 10:00:39821browse

PHP Joseph’s Problem Solving Algorithm for Execution of Prisoners

This article mainly introduces PHP Joseph’s Problem Solving Algorithm for Execution of Prisoners. It analyzes the implementation and implementation of Joseph’s Problem in PHP with examples. Application skills have certain reference value. Friends in need can refer to it

The example in this article describes the algorithm for solving the Joseph problem in PHP about 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.

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

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

1

2

3

4

5

67 8 9 10 11 12

13
14
<🎜>15<🎜> <🎜>16<🎜> <🎜>17<🎜> <🎜>18<🎜> <🎜>19<🎜> <🎜>20<🎜> <🎜>21<🎜> <🎜>22<🎜> <🎜>23<🎜> <🎜>24<🎜> <🎜>25<🎜> <🎜>26<🎜> <🎜>27<🎜> <🎜>28<🎜> <🎜>29<🎜> <🎜>30<🎜> <🎜>31<🎜> <🎜>32<🎜>
<🎜> <🎜>function getNum($n,$m){<🎜> <🎜>//Used to store all numbers into array initialization<🎜> <🎜>$a = array();<🎜> <🎜>//Traverse and store in array<🎜> <🎜>for($i=1;$i<=$n;$i ){<🎜> <🎜>$a[$i] = $i;<🎜> <🎜>}<🎜> <🎜>//The pointer returns to 0<🎜> <🎜>reset($a);<🎜> <🎜>while(count($a)>1){ //If the item in the array is greater than 1, continue to loop and remove elements //Elimination rules for($j=1;$j<=$m;$j ){ //If the last item of the array is not reached if(next($a)){ if($j==$m){ //Delete m items unset($a[array_search(prev($a),$a)]); } }else{ //If next does not exist, then the pointer returns to 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. http://www.bkjia.com/PHPjc/973135.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/973135.htmlTechArticlephp Joseph problem solving algorithm on executing prisoners This article mainly introduces php Joseph problem solving algorithm on executing prisoners , an example analysis of PHP’s implementation of Joseph’s problem and...
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