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

PHP實(shí)現(xiàn)的回溯算法示例

 更新時(shí)間:2017年08月15日 09:02:12   作者:CleverCode  
這篇文章主要介紹了PHP實(shí)現(xiàn)的回溯算法,結(jié)合具體實(shí)例形式分析了php回溯算法的實(shí)現(xiàn)步驟與使用方法,涉及字符串與數(shù)組的遞歸、遍歷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)的回溯算法。分享給大家供大家參考,具體如下:

問題:

 一頭大牛駝2袋大米,一頭中牛駝一袋大米,兩頭小牛駝一袋大米,請問100袋大米需要多少頭大牛,多少頭中牛,多少頭小牛?

實(shí)現(xiàn)代碼:

<?php
/*
 * k = 2x + y + 1/2z
 取值范圍
 * 0 <= x <= 1/2k
 * 0 <= y <= k
 * 0 <= z < = 2k
 * x,y,z最大值 2k
 */
$daMi = 100;
$result = array();
function isOk($t,$daMi,$result)
{/*{{{*/
 $total = 0;
 $hash = array();
 $hash[1] = 2;
 $hash[2] = 1;
 $hash[3] = 0.5;
 for($i=1;$i<=$t;$i++)
 {
 $total += $result[$i] * $hash[$i];
 }
 if( $total <= $daMi)
 {
 return true;
 }
 return false;
}/*}}}*/
function backtrack($t,$daMi,$result)
{/*{{{*/
 //遞歸出口
 if($t > 3)
 {
 //輸出最優(yōu)解
 if($daMi == (2 * $result[1] + $result[2] + 0.5 * $result[3]))
 {
  echo "最優(yōu)解,大米:${daMi},大牛:$result[1],中牛: $result[2],小牛:$result[3]\n";
 }
 return;
 }
 for($i = 0;$i <= 2 * $daMi;$i++)
 {
 $result[$t] = $i;
 //剪枝
 if(isOk($t,$daMi,$result))
 {
  backtrack($t+1,$daMi,$result);
 }
 $result[$t] = 0;
 }
}/*}}}*/
backtrack(1,$daMi,$result);
?>

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

更多關(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é)

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

相關(guān)文章

  • php生成隨機(jī)數(shù)/生成隨機(jī)字符串的方法小結(jié)【5種方法】

    php生成隨機(jī)數(shù)/生成隨機(jī)字符串的方法小結(jié)【5種方法】

    這篇文章主要介紹了php生成隨機(jī)數(shù)/生成隨機(jī)字符串的方法,結(jié)合實(shí)例形式分析了php生成隨機(jī)數(shù)/生成隨機(jī)字符串的5種實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • str_replace只替換一次字符串的方法

    str_replace只替換一次字符串的方法

    我們都知道,在PHP里Strtr,strreplace等函數(shù)都可以用來替換,不過他們每次替換的時(shí)候都是全部替換,但是如果你想只替換一個(gè)或兩個(gè)怎么辦呢?看下邊的解決方法
    2013-04-04
  • PHP調(diào)用Linux命令權(quán)限不足問題解決方法

    PHP調(diào)用Linux命令權(quán)限不足問題解決方法

    這篇文章主要介紹了PHP調(diào)用Linux命令權(quán)限不足問題解決方法,本文是解決項(xiàng)目問題總結(jié)而來,通過修改sudo配置文件解決無權(quán)限執(zhí)行命令問題,需要的朋友可以參考下
    2015-02-02
  • PHP5.5新特性之yield理解與用法實(shí)例分析

    PHP5.5新特性之yield理解與用法實(shí)例分析

    這篇文章主要介紹了PHP5.5新特性之yield理解與用法,結(jié)合實(shí)例形式分析了php5.5 yield生成器功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • PHP中有關(guān)長整數(shù)的一些操作教程

    PHP中有關(guān)長整數(shù)的一些操作教程

    這篇文章主要給大家介紹了關(guān)于PHP中有關(guān)長整數(shù)的一些操作教程,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • PHP中mysql_field_type()函數(shù)用法

    PHP中mysql_field_type()函數(shù)用法

    這篇文章主要介紹了PHP中mysql_field_type()函數(shù)用法,較為詳細(xì)的分析了使用mysql_field_type()函數(shù)獲取指定字段類型的方法,是PHP+MySQL程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • php HTML無刷新提交表單

    php HTML無刷新提交表單

    這篇文章主要介紹了php HTML無刷新提交表單,本文介紹了兩種無刷新提交表單的方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • php檢測文本的編碼

    php檢測文本的編碼

    這篇文章主要介紹了php檢測文本的編碼的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • php擴(kuò)展Zend?Framework框架——Validate擴(kuò)展

    php擴(kuò)展Zend?Framework框架——Validate擴(kuò)展

    這篇文章介紹了php擴(kuò)展Zend?Framework框架,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2008-01-01
  • php FPDF類庫應(yīng)用實(shí)現(xiàn)代碼

    php FPDF類庫應(yīng)用實(shí)現(xiàn)代碼

    php FPDF類庫應(yīng)用實(shí)現(xiàn)代碼
    2009-03-03

最新評論