編程課學習交流收獲
7月1日編程課學習交流收獲:
遞歸:
什么是遞歸?
遞歸算法是程序中一個過程或函數調用自身的編程技巧及方法。遞歸作為一種算法在程序設計語言中廣泛應用。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件/結束不滿足時,遞歸前進;當邊界/結束條件滿足時,遞歸返回。
真是個好東西,大大滴減少了代碼量。
遞推:
什么是遞推?
遞推算法是一種用若干步可重復運算來描述復雜問題的方法。遞推是序列計算中的一種常用算法。通常是通過計算前面的一些項來得出序列中的指定項的值。
總結
我認為遞推和遞歸算法的不同在于遞歸是在返回時輸出或計算答案,而遞推則是在推算時(也可理解為前進時)輸出或計算答案。
它們就好像電影《盜夢空間》中一層一層的夢鏡一樣,一層一層的遞進下去。

更直觀一些,他們就好比上圖一層一層的鏡子一樣,一直遞進,直到結束條件滿足時才返回。
其他收獲:
收獲一:
在洛谷中可以通過題單系統的刷題。
收獲二:
可以通過矩陣快速冪的方式提高遞推/遞歸程序的效率。
收獲三:
通過頭文件“<ctime>”配“cerr<<clock(); ”可以查看程序運行時間。

浙公網安備 33010602011771號