1樓:有呼呼
編寫計算斐波那契(fibonacci)數列的第n項函式fib(n)。
斐波那契數列為:0、1、1、2、3、……,即:
fib(0)=0;
fib(1)=1;
fib(n)=fib(n-1)+fib(n-2) (當n>1時)。
寫成遞迴函式有:
int fib(int n)
一個飼養場引進一隻剛出生的新品種兔子,這種兔子從出生的下一個月開始,每月新生一隻兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,問到第 12 個月時,該飼養場共有兔子多少隻?
分析: 這是一個典型的遞推問題。我們不妨假設第 1 個月時兔子的只數為 u 1 ,第 2 個月時兔子的只數為 u 2 ,第 3 個月時兔子的只數為 u 3 ,……根據題意,“這種兔子從出生的下一個月開始,每月新生一隻兔子”,則有
u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,……
根據這個規律,可以歸納出下面的遞推公式:
u n = u n - 1 × 2 (n ≥ 2)
對應 u n 和 u n - 1 ,定義兩個迭代變數 y 和 x ,可將上面的遞推公式轉換成如下迭代關係:
y=x*2
x=y讓計算機對這個迭代關係重複執行 11 次,就可以算出第 12 個月時的兔子數。參考程式如下:
clsx=1
for i=2 to 12
y=x*2
x=ynext i
print y
end分而治之法
1、分治法的基本思想
程式14-6 快速排序
template
void quicksort(t*a, int n)
while (a < pivot);
do while (a[j] > pivot);
if (i >= j) break; // 未發現交換物件
swap(a, a[j]);
} // 設定p i v o t
a[l] = a[j];
a[j] = pivot;
quicksort(a, l, j-1); // 對左段排序
quicksort(a, j+1, r); // 對右段排序
}【問題】 揹包問題
問題描述:有不同價值、不同重量的物品n件,求從這n件物品中選取一部分物品的選擇方案,使選中物品的總重量不超過指定的限制重量,但選中物品的價值之和最大。
#include
void main()
if(s<=m)
for(i=1;i<=n;i=i+1)
for(i=1,s=0;s#includestruct queue;int bestw = 0 ; // 目前的最優值queue* q; // 活結點佇列queue* lq = null ;queue* fq = null ;int add(int w)q->next = null ;q->weight = w ;if(q->next == null)elsereturn 0 ;}
int isempty()
該函式負責加入活結點else add(wt); // 不是葉子}
int maxloading(int w, int c, int n)while (true) }}
<
2樓:匿名使用者
poj.org各種有
我是是計算機專業,想問一下學習數學建模到底對程式設計能力或演算法能力有沒有幫助?
3樓:匿名使用者
我之前也是計算機專業的,現在也工作幾年了!就你說的數學到底對程式設計幫助有多大,真的真的不好說,因為工作中真的沒有一到程式設計題,或者演算法是通過某到數學公式解決的,呵呵!據我自己的理解,數學的主要作用是培養人的思維能力,這是潛移默化的,只有你認真學了,好好學了,才能感受到他的作用啊,還是要好好對待學校的基礎課啊,像編譯原理,微機原理,甚至彙編這些,其實工作以後很少會用到,但是還得好好學,他們培養的是你的計算機思維!
真正實用的,工作中用的,你工作以後再學都不晚,學校還是好好把基礎課學好,剛畢業找工作,沒人會問你關於專案啊,實際怎麼用的問題的,就是大公司面試應屆生,也是面試你們課本上的!
4樓:匿名使用者
一件事,用數學的語言表達出來,就是數學建模。一般來說,只能在數學模型建立後,才轉化成計算機語言。
5樓:聲
非常有用,但不常用!
演算法與程式設計有什麼關係?
6樓:查志強
演算法的定義
演算法(algorithm)是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。
不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。 一個演算法應該具有以下五個重要的特徵:
演算法可以使用自然語言、偽**、流程圖等多種不同的方法來描述。
1、有窮性(finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
2、確切性(difiniteness)
演算法的每一步驟必須有確切的定義;
3、輸入項(input)
一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4、輸出項(output)
一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性(effectiveness)
演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成。(也稱之為有效性) 電腦科學家尼克勞斯-沃思曾著過一本著名的書《資料結構十演算法= 程式》,可見演算法在電腦科學界與計算機應用界的地位。
程式設計就是讓計算機為解決某個問題而使用某種程式設計語言編寫程式**,並最終得到結果的過程。為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算機之間交流的過程就是程式設計。
做演算法的對程式設計要求有多高
關於演算法與程式設計,演算法與程式設計是什麼關係 急
資訊科技新課程標準如下幾個特點 資訊科技應用能力與人文素養培養相融合的課程目標 符合學生身心發展需求的課程內容 有利於所有學生全面發展與個性發展的課程結構形式。演算法與程式設計 學習目的 課程標準指出 使學生在原有基礎上進一步體驗演算法思想,瞭解演算法和程式設計在解決問題過程中的地位和作用 能從簡單...
c語言演算法,程式設計 C語言與演算法
這個是函式遞迴呼叫的問題。輸入的是n 5,在程式裡就會分別呼叫fun 5 fun 4 fun 3 fun 2 fun 1 當n 0時不滿足 n 0 的條件,停止遞迴呼叫。把得到的結果依次往回推,先從fun 1 開始,i 1滿足i n,執行一次for迴圈,輸出結果1之後換行 在執行fun 2 執行2次...
資料結構與演算法作業 用C語言程式設計隨機生成迷宮,然後找出從入口到出口的路線圖。急
幾點說明 1 本程式是動態的,執行後自動尋找迷宮出路 2.本程式對c語言剛學完的有很大的意義 3.四周是牆,座標 1,1 是入口,右下腳是出口 宣告 本程式用vc除錯是無法通過的需要修改 本程式除錯工具是tc.include graphics.h include dos.h include stdl...