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


Posted in PHP onMarch 23, 2015

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

PHP 相关文章推荐
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
php对称加密算法示例
May 07 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php封装一个异常的处理类
Jun 08 PHP
php实现算术验证码功能
Dec 05 PHP
PHP如何防止用户重复提交表单
Dec 09 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 #PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 #PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 #PHP
php找出指定范围内回文数且平方根也是回文数的方法
Mar 23 #PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 #PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 #PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 #PHP
You might like
PHP 危险函数全解析
2009/09/09 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
如何卸载python插件
2020/07/08 Python
体育专业学生自我评价范文
2014/01/17 职场文书
冬季安全检查方案
2014/05/23 职场文书
心理学专业求职信
2014/06/16 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
扬州个园导游词
2015/02/06 职场文书
单位介绍信格式范文
2015/05/04 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
python入门之算法学习
2021/04/22 Python
对Keras自带Loss Function的深入研究
2021/05/25 Python