遞推演算法和遞迴演算法
#include<iostream> using namespace std; int fab(int n) { if (n == 1 || n == 2) { return 1; } else { return fab(n - 2) + fab(n - 1); } } int fab2 (int n) { int a[20]; a[1] = 1; a[2] = 1; for (int i = 3; i <= n; i++) { a[i] = a[i-2] + a[i-1]; } return a[n]; } int main() { for (int i = 1; i < 20; i++) { cout << fab (i) << endl; } cout << endl; for (int i = 1; i < 20; i++) { cout << fab2 (i) << endl; } return 0; }
相關推薦
遞推演算法和遞迴演算法
#include<iostream> using namespace std; int fab(int n) { if (n == 1 || n == 2) { return 1; } else { return fab(n - 2) + fab(
斐波那契數列陣列遞推,普通遞迴,記憶化搜尋,矩陣快速冪,和公式法
直接數列遞推推的時候是O(n)的複雜度,查詢的時候是O(1),但是當n很大的時候,陣列空間可能有點力不從心 #include <iostream> #include <cstdio> using namespace std; int fb[4
poj 2505 A multiplication game (類似於遞推思想和博弈)
題目連結:poj 2505 題意:Stan and Ollie 兩人玩遊戲,Stan先手,一開始 P=1,每次玩家可以在數字 [ 2 , 9 ] 範圍內選擇一個數與p相乘,當P>=n時,此時的某玩家獲勝。 題解:我們可以這樣思考,首先我們先設 X,滿足 X*9&g
Number String(HDU 4055,動態規劃遞推,字首和優化)
點選加號檢視程式碼 #include<bits/stdc++.h>//字首和優化版本,不易理解 using namespace std; #define ll long long const ll maxn=1100; const ll mod=1000000
Bailian1664 Placing apples【遞推+記憶化遞迴】
1664:Placing apples 總時間限制: 1000ms 記憶體限制: 65536kB 描述 We are going to place M same apples into N same plates. There could be some empty plates. How many meth
bzoj1026-windy數-數位DP-遞推寫法與遞迴寫法
(有任何問題歡迎留言或私聊 && 歡迎交流討論哦 題意:傳送門 原題目描述在最下面。 windy定義了一種windy數。不含前導零且相鄰兩個數字之差至少為2的正整數被稱為windy數。 windy想知道,在A和B之間,包括A和B
回顧二分與bfs(或者說是遞推)和簡單模擬
今天,陽光正好,適合敲程式碼,諸事皆宜。 先來兩道簡單的模擬題。 第一道 機器翻譯 輸出為5. 程式碼思路:很明顯需要用到佇列來存單詞,在建立一個bool陣列來儲存佇列中有沒有這個單詞,需不需要向外界查詢,如果需要並且佇列可以容下,則加入佇列並將bool陣列標記在佇列中有該單詞,如果佇列容不下,
【python 走進NLP】兩種高效過濾敏感詞演算法--DFA演算法和AC自動機演算法
一道bat面試題:快速替換10億條標題中的5萬個敏感詞,有哪些解決思路? 有十億個標題,存在一個檔案中,一行一個標題。有5萬個敏感詞,存在另一個檔案。寫一個程式過濾掉所有標題中的所有敏感詞,儲存到另一個檔案中。 1、DFA過濾敏感詞演算法 在實現文字過濾的演算法中,DFA是
機器學習之Apriori演算法和FP-growth演算法
1 關聯分析 無監督機器學習方法中的關聯分析問題。關聯分析可以用於回答"哪些商品經常被同時購買?"之類的問題。 2 Apriori演算法 頻繁項集即出現次數多的資料集 支援度就是幾個關聯的資料在資料集中出現的次數佔總資料集的比重。或者說幾個資料關聯出現的概率。 置信度體現了一個數據出現後,另
機器學習筆記 第3課:引數演算法和非引數演算法
什麼是引數機器學習演算法?它與非引數機器學習演算法有何不同? “假設”通常會大大簡化學習過程,但也會限制學到的東西。將函式簡化為已知形式的演算法,稱為引數機器學習演算法。 它包括兩個步驟: 選擇函式的形式。 從訓練資料中學習該函式的係數。 常見的引數機器學習演算法是線
OpenJ_Bailian - 2757 最長上升子序列(O(n2)演算法和O(nlogn)演算法)
一個數的序列 bi,當 b1 < b2 < ... < bS的時候,我們稱這個序列是上升的。對於給定的一個序列( a1, a2, ..., aN),我們可以得
[Python]實現DES加密演算法和3DES加密演算法
pyDes.py ############################################################################# # Documentation
決策樹ID3演算法和C4.5演算法實戰
老師給的題目: 程式碼實現【兩種演算法合在一個檔案裡】: from numpy import * def createDataSet(): dataSet = [[1, 1, 1, 0, 'no'], [1, 1, 1, 1, '
作業系統中的頁面置換演算法和磁碟排程演算法
頁面置換演算法:http://blog.csdn.net/y920312/article/details/47780253 頁面置換演算法小總結: 1.Optimal(最佳置換演算法) 最長時間內不被訪問,也就是說找最後面的。 2.FIFO(先進先出演算法) 按
前剪枝演算法和後剪枝演算法區別
(一)剪枝演算法的簡介: 剪枝一般是為了避免樹的過於複雜,過於擬合而進行的一個動作,剪枝操作是一個全域性的操作。 (二)預剪枝: 預剪枝就是在樹的構建過程(只用到訓練集),設定一個閾值,使得當在當前分裂節點中分裂前和分裂後的誤差超過這個閾值則分列,否則
《機器學習實戰》使用Apriori演算法和FP-growth演算法進行關聯分析(Python版)
===================================================================== 《機器學習實戰》系列部落格是博主閱讀《機器學
貪心演算法和動態規劃演算法比較
動態規劃和貪心演算法都是一種遞推演算法 均用區域性最優解來推導全域性最優解 不同點: 貪心演算法: 1.貪心演算法中,作出的每步貪心決策都無法改變,因為貪心策略是由上一步的最優解推導下一步的最優解,而上一部之前的最優解則不作保留。 2.由(1
系統記憶體分配的首次適應演算法和最佳適應演算法連結串列模擬實現
#include<iostream> #include<stdlib.h> using namespace std; #define Free 0 //空閒狀態 #define Busy 1 //已用狀態 #define OK 1 //完成
#匈牙利演算法和Kuhn-Munkres演算法
內容摘自高隨祥的《圖論與網路流理論》一書 |N(S)|或者|X|或|Y|表示的是相應集合的元素的個數。 N(S)表示與S集合中的頂點相鄰接的頂點,例如,A-B-C-D中,B的鄰接點就是A和C。 A-B-C-D是一條增
首次適應演算法和最佳適應演算法(指標模擬分配過程)
實現程式記憶體的動態分配 首次適應演算法: 找到第一個滿足程式的記憶體塊,並將其分配給程式 最佳適應演算法: 找到所有的滿足程式的記憶體塊,並將其中最小的記憶體塊分配給程式 #include <iostream> #include <stri