gogogo免费视频观看亚洲一,国产ts一区二区,欧美久久精品午夜青青大伊人 http://m.inxxote.com/news 提供虛擬主機幫助信息 Mon, 30 Oct 2023 02:58:59 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.1.41 php遞歸函數(shù) php遞歸算法經(jīng)典實例大全 http://m.inxxote.com/news/?p=1817 http://m.inxxote.com/news/?p=1817#comments Sat, 16 Dec 2017 13:28:58 +0000 http://m.inxxote.com/news/?p=1817 遞歸函數(shù)是數(shù)論函數(shù)的一種,其定義域與值域都是自然數(shù)集,只是由于構(gòu)作函數(shù)方法的不同而有別于其他的函數(shù)。最簡單又最基本的函數(shù)有三個:零函數(shù)O(x)=0(其值恒為0),射影函數(shù),后繼函數(shù)S(x)=x+1,它們合稱初始函數(shù)。要想由舊函數(shù)作出新函數(shù),必須使用各種算子。在數(shù)理邏輯和計算機科學(xué)中,遞歸函數(shù)或μ-遞歸函數(shù)是一類從自然數(shù)到自然數(shù)的函數(shù),它是在某種直覺意義上是"可計算的"。事實上,在可計算性理論中證明了遞歸函數(shù)精確的是圖靈機的可計算函數(shù)。

 

遞歸函數(shù)

數(shù)論函數(shù)的一種,其定義域與值域都是自然數(shù)集,只是由于構(gòu)作函數(shù)方法的不同而有別于其他的函數(shù)。處處有定義的函數(shù)叫做全函數(shù),未必處處有定義的函數(shù)叫做部分函數(shù)。最簡單又最基本的函數(shù)有三個:零函數(shù)O(x)=0(其值恒為0);射影函數(shù)遞歸函數(shù);后繼函數(shù)S(x)=x+1。它們合稱初始函數(shù)。要想由舊函數(shù)作出新函數(shù),必須使用各種算子。
代入(又名復(fù)合或疊置)是最簡單又最重要的造新函數(shù)的算子,其一般形狀是:由一個m元函數(shù)?與m個n元函數(shù) g1,g2,…,gm 造成新函數(shù) ? (g1(x1,x2,…,xn),g2(x1,x2,…,xn),…,gm(x1,x2,…,xn)),亦可記為?(g1g2,…,gm)(x1x2,…,xn)。另一個造新函數(shù)的算子是原始遞歸式。具有n個參數(shù)u1u2,…,un的原始遞歸式為:

遞歸函數(shù)

具有一個參數(shù)的原始遞歸式可簡寫為:

遞歸函數(shù)

其特點是,不能由gh兩函數(shù)直接計算新函數(shù)的一般值?(u,x),而只能依次計算?(u,0),?(u,1),?(u,2),…;但只要依次計算,必能把任何一個?(u,x)值都算出來。換句話說只要g,h為全函數(shù)且可計算,則新函數(shù)f也是全函數(shù)且可計算。
由初始函數(shù)出發(fā),經(jīng)過有限次的代入與原始遞歸式而作出的函數(shù)叫做原始遞歸函數(shù)。由于初始函數(shù)顯然是全函數(shù)且可計算,故原始遞歸函數(shù)都是全函數(shù)且可計算。通常使用的數(shù)論函數(shù)全是原始遞歸函數(shù),可見原始遞歸函數(shù)是包括很廣的。但是W.阿克曼證明了,可以作出一個可計算的全函數(shù),它不是原始遞歸的。經(jīng)過后人改進后,這個函數(shù)可寫為如下定義的阿克曼函數(shù):

遞歸函數(shù)

容易看出,這個函數(shù)是處處可計算的。任給m,n的值,如果m為0,可由第一式算出;如果m不為0而n為0,可由第二式化歸為求g(m,1)的值,這時第一變目減少了;如果m,n均不為0,根據(jù)第三式可先計算g(m,n-1),設(shè)為α,再計算g(m-1,α),前者第二變目減少(第一變目不變),后者第一變目減少。極易用歸納法證得,這樣一步一步地化歸,最后必然化歸到第一變目為0,從而可用第一式計算。所以這個函數(shù)是處處可計算的。此外又容易證明,對任何一個一元原始遞歸函數(shù)?(x),永遠可找出一數(shù)α使得?(x)<g(α,x)。這樣,g(x,x)+1便不是原始遞歸函數(shù),否則將可找出一數(shù)b使得g(x,x)+1<g(b,x)。令x=b,即得g(b,b)+1<g(b,b),而這是不可能的。
另一個重要的造新函數(shù)的算子是造逆函數(shù)的算子,例如,由加法而造減法,由乘法造除法等。一般,設(shè)已有函數(shù)?(u,x),就x解方程?(u,x)=t,可得x=g(u,t)。這時函數(shù)g叫做?的逆函數(shù)。至于解一般方程?(ut,x)=0而得xg(ut)可以看作求逆函數(shù)的推廣。解方程可以看作使用求根算子。?(u,tx)=0的最小x根(如果有根的話),記為μx?(u,t,x)=0】。當(dāng)方程沒有根時,則認(rèn)為μx?(u,t,x)=0】沒有定義。可見,即使?(u,t,x)處處有定義且可計算,但使用求根算子后所得的函數(shù)μx?(u,t,x)=0】仍不是全函數(shù),可為部分函數(shù)。但只要它有定義,那就必然可以計算。這算子稱為μ算子。如果?(u,t,x)本身便是部分函數(shù),則 μx?(u,t,x)=0】的意義是:當(dāng)?(u,t,n)可計算且其值為0,而x<n?(u,t,x)均可計算而其值非0,則 μx?(u,t,x)=0】指n;其他情況則作為無定義。例如,如果?(u,t,x)=0根本沒有根,或者雖然知道有一根為n,但?(u,t,n-1)不可計算,那么 μx?(u,t,x)=0】都作為沒有定義。在這樣定義后,只要 μx?(u,t,x)=0】有值便必可計算。由初始函數(shù)出發(fā),經(jīng)過有窮次使用代入、原始遞歸式與 μ算子而作成的函數(shù)叫做部分遞歸函數(shù),處處有定義的部分遞歸函數(shù)稱為全遞歸函數(shù),或一般遞歸函數(shù)。
原始遞歸函數(shù)類里還有一個重要的子類稱為初等函數(shù)類,它是由非負整數(shù)與變元經(jīng)過有窮次加、算術(shù)減(即|α-b|)、乘、算術(shù)除遞歸函數(shù)、疊加Σ、疊乘П而得的函數(shù)組成的類。
波蘭人A.格熱高契克把原始遞歸函數(shù)類按定義的復(fù)雜程度來分類,稱為格熱高契克分層或波蘭分層。
要把遞歸函數(shù)應(yīng)用于謂詞,首先要定義謂詞的特征函數(shù)。謂詞R(x,y)的特征函數(shù)是

遞歸函數(shù)

稱謂詞R 是遞歸謂詞,若R 的特征函數(shù)是遞歸函數(shù);稱自然數(shù)子集A為遞歸集,若謂詞xA是遞歸謂詞。有了上述定義,就可以用遞歸函數(shù)來處理遞歸謂詞和遞歸集。為了處理N×N(其中N 為自然數(shù)集)的子集,就要建立配對函數(shù),所謂配對函數(shù)通常是指由N×NN 的一個函數(shù)?(xy)與它的逆函數(shù)g1(z),g2(z)。它們都滿足以下關(guān)系。

一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。這種函數(shù)稱為遞歸函數(shù)。這對于程序員來說,通常有很高的實用價值,常用來將復(fù)雜的問題分解為簡單的并相同的情況,反復(fù)做這種處理直到問題解決。

用遞歸函數(shù)與不用遞歸函數(shù)的區(qū)別

示例一:使用靜態(tài)變量

1
2
3
4
5
6
7
8
function test(){
??static $dig=0;
??if($dig++<10){
????echo $dig;
????test();
??}
}
test();//12345678910

示例二:使用遞歸函數(shù)和循環(huán)實現(xiàn)字符串逆轉(zhuǎn)排列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function unreverse($str){
??for($i=1;$i<=strlen($str);$i++){
????echo substr($str,-$i,1);
??}
}
unreverse("abcdefg");//gfedcbc
function reverse($str){
??if(strlen($str)>0){
????reverse(substr($str,1));
????echo substr($str,0,1);
????return;
??}
}
reverse("abcdefg");//gfedcbc

遞歸函數(shù)很多時候我們可以循環(huán)替代,建議當(dāng)我們不能用循環(huán)替代時再用,因為用循環(huán)我們更容易理解,更不容易出錯。

php遞歸函數(shù) php支付遞歸函數(shù),遞歸函數(shù)就是調(diào)用自己本身,這些函數(shù)特別適用于瀏覽動態(tài)數(shù)據(jù)結(jié)構(gòu),例如樹和列表。
幾乎沒有web應(yīng)用程序要求使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function reversr_r($str)
{
if (strlen($str)>0)
reverse_r(substr($str,1));
echo substr($str,0,1);
return;
}
?>
<?php
function reverse_i($str)
{
for($i=1;$i<=strlen($str);$i++)
{
echo substr($str,-$i,1);
}
}

這個程序清單中實現(xiàn)兩個函數(shù),這兩個函數(shù)都可以相反的順序打印字符串的內(nèi)容


函數(shù)reversr_r是通過遞歸實現(xiàn)的,而函數(shù)reverse_i()是通過循環(huán)實現(xiàn)的

 

遞歸函數(shù)即自調(diào)用函數(shù),在函數(shù)體內(nèi)部直接或者間接的自己調(diào)用自己,即函數(shù)的嵌套調(diào)用是函數(shù)本身。通常在此類型的函數(shù)提之中會附加一個條件判斷敘述,以判斷是否需要執(zhí)行遞歸調(diào)用,并且在特定的條件下終止函數(shù)的遞歸調(diào)用動作,把目前流程的主控權(quán)交回到上一層函數(shù)來執(zhí)行。以此,當(dāng)某個執(zhí)行遞歸調(diào)用的函數(shù)沒有附加條件判斷敘述時,可能會造成無限循環(huán)的錯誤情形。

函數(shù)遞歸調(diào)用最大的好處在于可以精簡程序中的復(fù)雜重復(fù)調(diào)用程序,并且能以這種特性來執(zhí)行一些較為復(fù)雜的運算動作。例如,列表、動態(tài)樹形菜單及遍歷目錄等操作。相應(yīng)的非遞歸函數(shù)雖然效率高,但卻比較難編程,而且相對來說可讀性差。現(xiàn)代程序設(shè)計的目標(biāo)主要是可讀性好。隨著計算機硬件性能的不斷提高,程序在更多的場合優(yōu)先考慮可讀而不是高效,所以,鼓勵用遞歸函數(shù)實現(xiàn)程序思想。

一個簡單的遞歸調(diào)用實例如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
?//聲明一個函數(shù),用于測試遞歸
?function test($n){
???echo $n."&nbsp;";??????? //在函數(shù)開始輸出參數(shù)的值
???if($n>0){??????????????? //判斷參數(shù)是否大于0
?????test($n-1);??????????? //如果參數(shù)大于0則調(diào)用自己,并將參數(shù)減1后再次傳入
???}else{?????????????????? //判斷參數(shù)是不大于0
?????echo "<-------->? ";
???}
???echo $n."&nbsp;";
?}
?test(10);?????????????????? //調(diào)用test函數(shù)將整數(shù)10傳給參數(shù)
?>

該程序執(zhí)行后輸出如下的結(jié)果:

1
10 9 8 7 6 5 4 3 2 1 0 <--------> 0 1 2 3 4 5 6 7 8 9 10

找到結(jié)果中后半部分的數(shù)字正向順序輸出的原因

說明:在上面的實例中聲明了一個 test()函數(shù),該函數(shù)需要一個整型的參數(shù)。在函數(shù)外面通過傳遞整數(shù) 10 作為參數(shù)調(diào)用 test()函數(shù)。在 test()函數(shù)體中,第一條代碼輸出參數(shù)的值和一個空格。然后判斷條件是否成立,成立則調(diào)用自己并將參數(shù)減 1 再次傳入。開始調(diào)用時,它是外層調(diào)內(nèi)層,內(nèi)層調(diào)更內(nèi)一層,直到最內(nèi)層由于條件不允許必須結(jié)束。最內(nèi)存結(jié)束了,輸出 <--------> 作為分界符,執(zhí)行調(diào)用之后的代碼輸出參數(shù)的值和空格,它就會回到稍外一層繼續(xù)執(zhí)行。稍外一層在結(jié)束時,退回到在稍外一層繼續(xù)執(zhí)行,層層推出,直到最外層結(jié)束。執(zhí)行完成以后的結(jié)果就是我們上面看到的結(jié)果。

樹型菜單在很多桌面應(yīng)用系統(tǒng)中都有非常廣泛的應(yīng)用,其主要優(yōu)點是結(jié)構(gòu)清晰,利于使用者非常清楚的知道目前自己所在的位置。但在web上樹型菜單的應(yīng)用因為沒有理想的現(xiàn)成組件可以拿過來直接使用,所以一般的情況下,程序員主要是通過JavaScript來實現(xiàn)一些簡單的樹型結(jié)構(gòu)菜單,但這些菜單往往都是事先定好各菜單項目,以及各菜單項目之間的層次關(guān)系,不利于擴充,一旦需要另一個菜單結(jié)構(gòu)時,往往還需要重新編寫,因此使用起來不是很方便。

??? 經(jīng)過對函數(shù)遞歸的研究,我發(fā)現(xiàn)這種樹型菜單可以通過遞歸函數(shù),使樹型菜單的顯示實現(xiàn)動態(tài)變化,并沒有級數(shù)的限制。下面就是我用php,MySQL,JavaScript寫的一個動態(tài)樹型菜單的處理代碼,如果大家有興趣的話,就和我一起來看看我是如何實現(xiàn)的吧:)

??? 首先,我們需要一個數(shù)據(jù)庫,在這個數(shù)據(jù)庫中,我們建立以下一張表:

CREATE TABLE menu (
id tinyint(4) NOT NULL auto_increment,
parent_id tinyint(4) DEFAULT \\'0\\' NOT NULL,
name varchar(20),
url varchar(60),
PRIMARY KEY (id)
);


??? 這張表中
??? id 為索引
??? parent_id 用來保存上一級菜單的id號,如果是一級菜單則為0
??? name 為菜單的名稱,也就是要在頁面上顯示的菜單內(nèi)容
??? url 如果某菜單為末級菜單,則需要指定該連接的url地址,這個字段就是用來保存此地址的,其他非末級菜單,該字段為空

]]>
http://m.inxxote.com/news/?feed=rss2&p=1817 0
欧日韩美香蕉在线观看,日本手机在线视频,久久久久久久久久免费视频,久草在线免费资源
国产成人欧美日韩在线电影| 99re在线视频这里只有精品| 日韩精品一区二区三区在线播放 | 午夜在线电影亚洲一区| 韩国女主播一区二区三区| 日韩手机在线导航| 国产一区日韩二区欧美三区| 国产精品人人做人人爽人人添| 91在线小视频| 日本不卡一二三| 国产人成亚洲第一网站在线播放| 国产一区福利在线| 日韩极品在线观看| 亚洲激情六月丁香| 亚洲国产成人午夜在线一区| 69久久夜色精品国产69蝌蚪网| 国产一区二区在线电影| 一区二区三区免费观看| 久久久亚洲精华液精华液精华液| 制服丝袜亚洲网站| 91精品欧美一区二区三区综合在| av资源站一区| 欧美日韩在线直播| 91丨九色丨黑人外教| 91在线精品一区二区三区| 成人国产精品免费观看| 日本aⅴ精品一区二区三区| 精品免费视频.| 日韩一区二区免费视频| 这里只有精品免费| 久久精品人人做人人综合| 欧美一区二区久久| 日韩网站在线看片你懂的| 精品国产精品一区二区夜夜嗨| 欧美日韩国产一区| 精品久久久三级丝袜| 久久美女艺术照精彩视频福利播放| 狠狠色伊人亚洲综合成人| 国产在线精品国自产拍免费| 九九视频精品免费| 99久久精品国产一区二区三区| 99精品久久99久久久久| 日韩欧美色综合| 天天综合色天天综合色h| 国产99久久久久久免费看农村| 欧美日韩国产经典色站一区二区三区| 精品久久一区二区| 久久精品免费观看| 欧洲一区在线电影| 亚洲欧美一区二区久久| 国产精品三级视频| 国产精品2024| 日韩精品综合一本久道在线视频| 亚洲欧美日韩精品久久久久| 国产aⅴ综合色| 亚洲国产成人一区二区三区| 国产suv精品一区二区6| 日韩精品视频网| 欧美日本国产视频| 青青草原综合久久大伊人精品 | 久久久青草青青国产亚洲免观| 欧美96一区二区免费视频| 99久久精品一区| 国产精品三级av| 欧美性生活久久| 日韩一级片网址| 久久成人免费网站| 欧美一级久久久久久久大片| 麻豆91在线观看| 中文字幕日韩精品一区| 欧美日韩免费观看一区三区| 国产精品美女久久久久久久 | 欧美日韩成人综合天天影院| 午夜视频久久久久久| 国产精品久久久久影院| 国产丝袜欧美中文另类| 在线不卡中文字幕| 国产精品一区二区无线| 亚洲一区二区三区不卡国产欧美| 欧美一区二区三区在线电影| 成人小视频免费观看| 美洲天堂一区二卡三卡四卡视频| 久久久.com| 欧美成人伊人久久综合网| 91麻豆国产福利在线观看| 亚洲精品中文在线影院| 中文一区一区三区高中清不卡| 欧美精品九九99久久| 精品1区2区3区| 欧美色综合网站| 欧美色图激情小说| 欧美军同video69gay| 欧美无人高清视频在线观看| 日韩一区二区三区av| 欧美电视剧在线观看完整版| 99精品在线免费| 久久电影国产免费久久电影| 最新久久zyz资源站| 亚洲午夜免费视频| 青青草视频一区| bt7086福利一区国产| 精品欧美乱码久久久久久1区2区| 久久久99精品免费观看不卡| 88在线观看91蜜桃国自产| 欧美一区二区视频在线观看2022| 精品国产免费人成电影在线观看四季 | 韩日欧美一区二区三区| 国产精品69毛片高清亚洲| 91久久人澡人人添人人爽欧美 | 99精品久久免费看蜜臀剧情介绍| 欧美色老头old∨ideo| 中文字幕一区二区不卡| 国产成人啪午夜精品网站男同| 91麻豆精东视频| 国产精品一区二区果冻传媒| 亚洲高清不卡在线观看| 日本一区二区电影| 日韩午夜电影av| 久久精品一区二区三区不卡 | 免费看欧美美女黄的网站| 在线观看视频欧美| 国产精品天干天干在观线| 国产成人在线视频网站| 欧美精品一区二区精品网| 国产精品久久久久久一区二区三区| 国产喂奶挤奶一区二区三区| 国产在线不卡视频| 日韩手机在线导航| 国产伦精品一区二区三区免费| 国产日韩精品久久久| 在线成人高清不卡| 色综合久久综合中文综合网| 久久激情五月激情| 日本在线观看不卡视频| 国产片一区二区| 欧美不卡一二三| 欧美人牲a欧美精品| 99视频国产精品| www.亚洲色图| 国产精品18久久久久久久网站| 一区二区三区四区蜜桃| 欧美刺激午夜性久久久久久久| 亚洲午夜久久久久久久久久久 | 亚洲欧洲色图综合| 亚洲精品一区二区三区福利| 色综合久久66| 在线看不卡av| 欧美一卡二卡三卡| 亚洲国产高清不卡| 欧美另类z0zxhd电影| 91免费视频网址| 色噜噜狠狠成人中文综合| 成人国产一区二区三区精品| 免费的国产精品| 国产午夜精品美女毛片视频| 久久久久久久免费视频了| 国产精品美女久久久久aⅴ| 亚洲一二三专区| 国产亚洲一二三区| 亚洲国产精品成人久久综合一区| 欧美精品一二三区| 久久久青草青青国产亚洲免观| 欧美一区日韩一区| 中文字幕亚洲视频| 奇米一区二区三区| 久久se这里有精品| 91麻豆福利精品推荐| 欧美精品v国产精品v日韩精品 | 亚洲一区二区3| 一本大道久久a久久综合婷婷| 欧美午夜精品一区| 色综合久久天天综合网| 精品欧美一区二区久久 | 国产一区二区三区在线观看免费视频 | 国产一区欧美日韩| 欧美成人性战久久| 国内精品伊人久久久久av一坑| 欧美三级在线看| 免费成人小视频| 中文在线一区二区| 成人av电影观看| 亚洲午夜成aⅴ人片| 91精品免费观看| 国产精品1区2区3区| 色av成人天堂桃色av| 亚洲一区国产视频| 精品一区二区三区在线观看国产| 欧美丰满一区二区免费视频| 国产精品久久久久精k8| 91视频观看视频| 日本成人在线看| 亚洲美女视频在线观看| 欧美一级艳片视频免费观看| 国产在线精品一区在线观看麻豆| 精品国产99国产精品| 色婷婷亚洲综合| 成人自拍视频在线| 蜜臀久久99精品久久久久宅男 | 亚洲午夜电影在线| 亚洲欧洲另类国产综合|