• 技术文章 >后端开发 >php教程

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

    2016-05-31 11:45:37原创272
    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 约瑟夫 问题 算法
    上一篇:php实现用于验证所有类型的信用卡类_PHP 下一篇:php实现通用的信用卡验证类_PHP
    千万级数据并发解决方案

    相关文章推荐

    • PHP验证信用卡卡号是否正确函数_PHP• php微信公众平台开发类实例_PHP• PHP实现检测客户端是否使用代理服务器及其匿名级别_PHP• php中__destruct与register_shutdown_function执行的先后顺序问题_PHP• ThinkPHP实现将SESSION存入MYSQL的方法_PHP
    1/1

    PHP中文网