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服务器实现多session并发运行
Oct 09 PHP
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
从网上搜到的phpwind 0day的代码
Dec 07 PHP
php中全局变量global的使用演示代码
May 18 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php实现的ping端口函数实例
Nov 12 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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
Protoss魔法科技
2020/03/14 星际争霸
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
mongodb和php的用法详解
2019/03/25 PHP
javascript 继承实现方法
2009/08/26 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
Python get获取页面cookie代码实例
2018/09/12 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
numpy.random模块用法总结
2019/05/27 Python
Django 返回json数据的实现示例
2020/03/05 Python
使用python实现名片管理系统
2020/06/18 Python
什么是python的自省
2020/06/21 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
反邪教观后感
2015/06/11 职场文书
师范生见习总结范文
2015/06/23 职场文书
运动会通讯稿300字
2015/07/20 职场文书
详解nginx进程锁的实现
2021/06/14 Servers