濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫(kù) > PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法分析

PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法分析

熱門標(biāo)簽:外呼系統(tǒng)人工客服 400電話申請(qǐng)辦理 全國(guó)各省地圖標(biāo)注點(diǎn) 隨州銷售電銷機(jī)器人公司 商丘外呼系統(tǒng)好處 網(wǎng)絡(luò)電話400申請(qǐng) 福建高頻外呼防封系統(tǒng)哪家好 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 百度地圖標(biāo)注類型是酒店

本文實(shí)例講述了PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法。分享給大家供大家參考,具體如下:

一、概述

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

二、實(shí)現(xiàn)代碼

1. 循環(huán)

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);

運(yùn)行結(jié)果:

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);

運(yùn)行結(jié)果:

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

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • php解決約瑟夫環(huán)示例
  • 約瑟夫環(huán)問題的PHP實(shí)現(xiàn) 使用PHP數(shù)組內(nèi)部指針操作函數(shù)
  • PHP使用棧解決約瑟夫環(huán)問題算法示例
  • PHP基于遞歸實(shí)現(xiàn)的約瑟夫環(huán)算法示例
  • PHP實(shí)現(xiàn)的基于單向鏈表解決約瑟夫環(huán)問題示例
  • php基于環(huán)形鏈表解決約瑟夫環(huán)問題示例
  • php實(shí)現(xiàn)約瑟夫問題的方法小結(jié)
  • php約瑟夫問題解決關(guān)于處死犯人的算法
  • PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問題示例
  • php使用環(huán)形鏈表解決約瑟夫問題完整示例
  • php解決約瑟夫環(huán)算法實(shí)例分析

標(biāo)簽:南寧 十堰 海南 樂山 佛山 六安 定西 迪慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法分析》,本文關(guān)鍵詞  PHP,實(shí)現(xiàn),約瑟夫,環(huán)問,題的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP實(shí)現(xiàn)約瑟夫環(huán)問題的方法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    汶川县| 高安市| 鹤山市| 德清县| 正阳县| 即墨市| 新河县| 新源县| 云林县| 平遥县| 北流市| 方正县| 抚远县| 台州市| 兰溪市| 莱州市| 五指山市| 无锡市| 新晃| 南漳县| 郴州市| 宿迁市| 伊宁县| 惠水县| 淳化县| 长乐市| 南雄市| 区。| 徐水县| 卢氏县| 东安县| 普宁市| 南岸区| 吴川市| 昆山市| 河南省| 二手房| 贵港市| 武夷山市| 上蔡县| 三门峡市|