首頁 >php教程 >php手册 >php约瑟夫问题解决关于处死犯人的算法

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

WBOY
WBOY原創
2016-06-13 09:09:37787瀏覽

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

 这篇文章主要介绍了php约瑟夫问题解决关于处死犯人的算法,实例分析了php关于约瑟夫问题的实现与应用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

 

 

本文实例讲述了php约瑟夫问题解决关于处死犯人的算法。分享给大家供大家参考。具体分析如下:

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

?

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

$a[$i] = $i;

}

//指针归0

reset($a);

while(count($a)>1){

//如果数组中项大于1,继续循环剔除元素

//剔除规则

for($j=1;$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程序设计有所帮助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn