基于PHP递归实现的约瑟夫环算法实例
本文介绍了基于PHP递归实现的约瑟夫环算法,供大家分享,供大家参考,如下:约瑟夫环问题:39个犹太人,约瑟夫斯和他的朋友们藏在山洞里,和39个犹太人决定死而不是被敌人抓住。我决定自杀,41人排成一圈,从第一个人开始数,报告数量的每个人在第三人必须自杀。然后重新关闭,直到每个人都打死为止自杀。然而,约瑟夫斯和他的朋友们不想遵守。约瑟夫斯让他的朋友先假装服从。他把自己的朋友安排在第十六个和第三十一个位置,所以他逃过了死神的游戏。
< PHP
$ = 41;
$步骤= 3;
函数的约瑟夫(ARR美元,美元美元美元一步开始,幸存者)
{
foreach(ARR美元美元美元K = V)
{
如果($ $开始步骤= 0)
{
unset($ ARR { $ K });
$起始=1;
}
其他的
{
开始+ +;
}
}
如果(计数($ ARR)>为幸存者)
返回约瑟夫(ARR美元,美元美元美元一步开始,幸存者);
其他的
返回的数组;
}
$ I = 0;
$ ARR = { };
当($ i)
$ ARR { } =我;
}
约瑟夫(ARR ARR为美元美元,3, 1, 2);
print_r($ ARR);
实施结果:
阵列
(
{ 15 } = 16
{ 30 } = 31
)
关于PHP相关内容的更多读者感兴趣的读者可以看到特别站:PHP数据结构和算法教程
希望本文能对PHP程序设计有所帮助。