zoukankan      html  css  js  c++  java
  • PHP解决约瑟夫环问题

    PHP解决约瑟夫环问题

    一、总结

    二、PHP解决约瑟夫环问题

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后 [1]  结果+1即为原问题的解。

     1 //PHP解决约瑟夫环问题
     2 //方法一
     3 function joseph_ring($n,$m){
     4     $arr = range(1,$n);
     5     $i = 0;
     6     while(count($arr)>1){
     7         $i=$i+1;
     8         $head = array_shift($arr);
     9         if($i%$m != 0){ //如果不是则重新压入数组
    10             array_push($arr,$head);
    11         }
    12     }
    13     return $arr[0];
    14 }
    15 //方法二
    16 function joseph_ring2($n,$m){
    17     $r = 0;
    18     for($i=2;$i<=$n;$i++){
    19         $r = ($r+$m)%$i;
    20     }
    21     return $r + 1;
    22 }
    23 echo "<br/>".joseph_ring(60,5)."<br/>";
    24 echo "<br/>".joseph_ring2(60,5)."<br/>";

    方法一直接模拟

  • 相关阅读:
    rocketmq的linux搭建环境
    linux调用本地shell脚本
    第二课
    第一课
    有意思的dos攻击
    信息收集
    url跳转挖掘
    Drozer之android_app分析实战
    缓存中毒
    随便写写
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9027284.html
Copyright © 2011-2022 走看看