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

yipeiwu_com6年前PHP代码库

本文实例讲述了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来说视频也属于文件,我们利用这个道理,...

PHP设计模式之单例模式定义与用法分析

本文实例分析了PHP设计模式之单例模式。分享给大家供大家参考,具体如下: 单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点...

PHP简洁函数小结

PHP简洁函数 主题:类菌体PHP简洁函数 简述:PHP简单明了函数语法 适合人群:对开源社区感兴趣,对php感兴趣,有一点时间了解下php 备注:希望大家抛砖,仍蛋,呵呵 1、与mys...

简单的php写入数据库类代码分享

不知道原创要写到随笔里。 All right ,第一篇博文。 有三个类: 1 . 过滤输入(轻量级的) class input_filter 负责将参数,如$_GET,$_POST 这些...

php中怎么搜索相关联数组键值及获取之

1.搜索关联数组键如果在一个数组中找到一个指定的键,函数array_key_exists()返回TRUE,否则返回FALSE。其 形式如下:boolean array_key_exist...