国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現約瑟夫環問題的方法分析

2024-05-05 00:01:21
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現約瑟夫環問題的方法。分享給大家供大家參考,具體如下:

一、概述

先來看看網上比較常見的約瑟夫環問題描述:約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0~n-1,最后結果+1即為原問題的解。

二、實現代碼

1. 循環

function circle($arr,$idx,$k){  for($i=0;$i<$idx;$i++){    $tmp = array_shift($arr);    array_push($arr,$tmp);  }  $j = 1;  while(count($arr) > 0){    $tmp = array_shift($arr);    if($j++%$k == 0){      echo $tmp."/n";    }else{      array_push($arr,$tmp);    }  }}$arr = array(1,2,3,4,5,6,7,8,9,10,11,12);$idx = 3;$k = 4;circle($arr,$idx,$k);

運行結果:

7 11 3 8 1 6 2 10 9 12 5 4 

2. 遞歸

function circle($arr,$idx,$k){  $len = count($arr);  $i = 1;  if($len == 1){    echo $arr[0]."/n";    return ;  } else {    while($i++ < $k){      $idx++;      $idx = $idx%$len;    }    echo $arr[$idx]."/n";    array_splice($arr,$idx,1);    circle($arr,$idx,$k);  }}$arr = [1,2,3,4,5,6,7,8,9,10,11,12];$idx = 3;$k = 4;circle($arr,$idx,$k);

運行結果:

7 11 3 8 1 6 2 10 9 12 5 4

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 贺兰县| 健康| 岳池县| 昌平区| 成都市| 肇州县| 南安市| 贡山| 白朗县| 土默特左旗| 龙岩市| 齐河县| 玉溪市| 仁怀市| 阿克| 山阳县| 仁化县| 开封县| 祁阳县| 南江县| 汪清县| 永善县| 麟游县| 同德县| 页游| 拉孜县| 云林县| 河北区| 梁河县| 陵水| 德令哈市| 石渠县| 桓台县| 全椒县| 阳高县| 普宁市| 东乡族自治县| 民县| 江山市| 江西省| 台湾省|