欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP基于遞歸實(shí)現(xiàn)的約瑟夫環(huán)算法示例

 更新時(shí)間:2017年08月27日 12:13:41   作者:alian_c  
這篇文章主要介紹了PHP基于遞歸實(shí)現(xiàn)的約瑟夫環(huán)算法,結(jié)合實(shí)例形式較為詳細(xì)的分析了約瑟夫環(huán)問(wèn)題與php使用遞歸算法的解決方法,需要的朋友可以參考下

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

約瑟夫環(huán)問(wèn)題: 39 個(gè)猶太人與Josephus及他的朋友躲到一個(gè)洞中,39個(gè)猶太人決定寧愿死也不要被敵人抓。于是決定了自殺方式,41個(gè)人排成一個(gè)圓圈,由第1個(gè)人開(kāi)始報(bào)數(shù),每報(bào)數(shù)到第3人該人就必須自殺。然后下一個(gè)重新報(bào)數(shù),直到所有人都自殺身亡為止。然而Josephus 和他的朋友并不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個(gè)與第31個(gè)位置,于是逃過(guò)了這場(chǎng)死亡游戲。

<?php
$num = 41;
$step = 3;
function joseph($arr, $step, $start, $survivors)
{
  foreach($arr as $k => $v)
  {
    if($start % $step === 0)
    {
      unset($arr[$k]);
      $start = 1;
    }
    else
    {
      $start ++;
    }
  }
  if(count($arr) > $survivors)
    return joseph($arr, $step, $start, $survivors);
  else
    return $arr;
}
$i = 0;
$arr = [];
while($i ++ < $num){
  $arr[] = $i;
}
$arr = joseph($arr, 3, 1, 2);
print_r($arr);

執(zhí)行結(jié)果:

Array
(
  [15] => 16
  [30] => 31
)

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

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

相關(guān)文章

  • 深入了解PHP類(lèi)Class的概念

    深入了解PHP類(lèi)Class的概念

    日常環(huán)境由無(wú)數(shù)實(shí)體組成:植物、人群、交通工具、食物……實(shí)在是太多了,光是把它們列出來(lái)都要花上幾個(gè)小時(shí)的時(shí)間。每個(gè)實(shí)體都由一組性質(zhì)和行為來(lái)定義
    2012-06-06
  • PHP中使用asort進(jìn)行中文排序失效的問(wèn)題處理

    PHP中使用asort進(jìn)行中文排序失效的問(wèn)題處理

    asort() 函數(shù)對(duì)數(shù)組進(jìn)行排序并保持索引關(guān)系。主要用于對(duì)那些單元順序很重要的結(jié)合數(shù)組進(jìn)行排序??蛇x的第二個(gè)參數(shù)包含了附加的排序標(biāo)識(shí)。如果成功則返回 TRUE,否則返回 FALSE。
    2014-08-08
  • php htmlspecialchars()與shtmlspecialchars()函數(shù)的深入分析

    php htmlspecialchars()與shtmlspecialchars()函數(shù)的深入分析

    本篇文章是對(duì)php中的htmlspecialchars()與shtmlspecialchars() 函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹

    PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹

    這篇文章主要介紹了PHP中關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹,需要的朋友可以參考下
    2013-07-07
  • PHP跳出for循環(huán)中的break和continue

    PHP跳出for循環(huán)中的break和continue

    在PHP中,可以使用break關(guān)鍵字來(lái)跳出循環(huán),,PHP中還可以使用continue關(guān)鍵字跳過(guò)本次循環(huán)并繼續(xù)執(zhí)行下一次循環(huán),當(dāng)循環(huán)執(zhí)行到continue語(yǔ)句時(shí),本次循環(huán)中continue之后的代碼將不再執(zhí)行,直接進(jìn)入下一次循環(huán)
    2023-09-09
  • php實(shí)現(xiàn)映射操作實(shí)例詳解

    php實(shí)現(xiàn)映射操作實(shí)例詳解

    這篇文章主要介紹了php實(shí)現(xiàn)映射操作,結(jié)合實(shí)例形式詳細(xì)分析了PHP映射概念、原理及使用鏈表與二叉樹(shù)實(shí)現(xiàn)映射的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • php ajax異步讀取rss文檔數(shù)據(jù)

    php ajax異步讀取rss文檔數(shù)據(jù)

    這篇文章主要介紹了php ajax異步讀取rss文檔數(shù)據(jù)的相關(guān)資料,RSS是一種描述和同步網(wǎng)站內(nèi)容的格式,需要的朋友可以參考下
    2016-03-03
  • PHP獲取星期幾的常用方法小結(jié)

    PHP獲取星期幾的常用方法小結(jié)

    這篇文章主要介紹了PHP獲取星期幾的常用方法,結(jié)合實(shí)例形式分析了php使用date函數(shù)獲取指定日期星期幾的具體操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • PHP面向?qū)ο罄^承用法詳解(優(yōu)化與減少代碼重復(fù))

    PHP面向?qū)ο罄^承用法詳解(優(yōu)化與減少代碼重復(fù))

    這篇文章主要介紹了PHP面向?qū)ο罄^承用法,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中繼承的使用方法及代碼優(yōu)化處理與減少代碼重復(fù)的相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • PHP之將POST數(shù)據(jù)轉(zhuǎn)化為字符串的實(shí)現(xiàn)代碼

    PHP之將POST數(shù)據(jù)轉(zhuǎn)化為字符串的實(shí)現(xiàn)代碼

    今天來(lái)分享一個(gè)方便我們做LOG日志記錄的自定義函數(shù),需要將POST數(shù)據(jù)轉(zhuǎn)化為字符串,需要的朋友可以參考下
    2016-11-11

最新評(píng)論