约瑟夫环

WBOY
Freigeben: 2016-07-25 08:47:31
Original
884 Leute haben es durchsucht
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
                   
                               
                                       
                                       
            
  1. function king($n, $m)
  2. {
  3.     $monkey = range(1, $n);//模拟建立一个连续数组
  4.     $i = 0;
  5.     while (count($monkey) >= 1)
  6.     {
  7.         $i += 1; // 开始查数
  8.         $head = array_shift($monkey); //直接一个一个出列最前面的猴子
  9.         if ($i % $m != 0)
  10.         {
  11.             array_push($monkey, $head); // 如果没数到m或m的倍数,则把该猴放回尾部去.
  12.         }
  13.         else
  14.         {
  15.             $out[] = $head;
  16.         }
  17.     }
  18.     return $out;
  19. }
  20. $out = king(9, 5);
  21. print_r($out);
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage