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()
int delete(int&w)void enqueue(int wt, int& bestw, int i, int n) //該函式負責加入活結點else add(wt); // 不是葉子}
int maxloading(int w, int c, int n)while (true) }}
int main()fscanf(in , "%d" , &n) ;fscanf(in , "%d" , &c) ;w = (int*)malloc(sizeof(int)*(n+1)) ;for(i =1 ; i<=n ; i++) fscanf(in , "%d" , &w[i]) ;maxloading(w , c , n) ;fprintf(out , "%d\n" , bestw) ;return 0 ;}
2樓:匿名使用者
poj.org各種有
我是是計算機專業,想問一下學習數學建模到底對程式設計能力或演算法能力有沒有幫助?
3樓:匿名使用者
我之前也是計算機專業的,現在也工作幾年了!就你說的數學到底對程式設計幫助有多大,真的真的不好說,因為工作中真的沒有一到程式設計題,或者演算法是通過某到數學公式解決的,呵呵!據我自己的理解,數學的主要作用是培養人的思維能力,這是潛移默化的,只有你認真學了,好好學了,才能感受到他的作用啊,還是要好好對待學校的基礎課啊,像編譯原理,微機原理,甚至彙編這些,其實工作以後很少會用到,但是還得好好學,他們培養的是你的計算機思維!
真正實用的,工作中用的,你工作以後再學都不晚,學校還是好好把基礎課學好,剛畢業找工作,沒人會問你關於專案啊,實際怎麼用的問題的,就是大公司面試應屆生,也是面試你們課本上的!
4樓:匿名使用者
一件事,用數學的語言表達出來,就是數學建模。一般來說,只能在數學模型建立後,才轉化成計算機語言。
5樓:聲
非常有用,但不常用!
演算法與程式設計有什麼關係?
6樓:查志強
演算法的定義
演算法(algorithm)是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。
不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。 一個演算法應該具有以下五個重要的特徵:
演算法可以使用自然語言、偽**、流程圖等多種不同的方法來描述。
1、有窮性(finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
2、確切性(difiniteness)
演算法的每一步驟必須有確切的定義;
3、輸入項(input)
一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4、輸出項(output)
一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性(effectiveness)
演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成。(也稱之為有效性) 電腦科學家尼克勞斯-沃思曾著過一本著名的書《資料結構十演算法= 程式》,可見演算法在電腦科學界與計算機應用界的地位。
程式設計就是讓計算機為解決某個問題而使用某種程式設計語言編寫程式**,並最終得到結果的過程。為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算機之間交流的過程就是程式設計。
做演算法的對程式設計要求有多高
程式設計要點在哪?演算法嗎,軟體程式設計經常用的演算法都有哪些?
應該叫最優演算法才對。要點就是演算法的最優化。判斷演算法優劣主要從以下幾個方面考慮 1.演算法時間複雜度。即考慮執行時間與效率,消耗記憶體大小。實際應用有很多,比如軍事方面中的一個雷達掃描耗費時間和導彈攔截方向計算時間等等。2.演算法空間複雜度。公司伺服器的容量和記憶體消耗,要知道公司的主要目的是盈...
3 25 0 8 3 25有沒有簡便演算法
黃先生生活達人 解題步驟 3.25 0.8 3.25 3.25 1 0.8 3.25 0.2 0.65 解題分析 運用結合律來簡便計算,a b a c a b c 提高數學成績資訊 1.上學前一天把第二天要學的內容看一次,不用弄懂,只要過目一次就可以了.2.上課時精神一定要非常集中.這個很重要,因為...
程式設計師演算法是幹什麼的,程式設計中的演算法是指什麼?
計算機程式設計師的工作內容有 1 負責軟體專案的詳細設計 編碼和內部測試的組織實施 2 協助專案經理和相關人員同客戶進行溝通 3 參與需求調研 專案可行性分析 技術可行性分析和需求分析 4 熟練掌握交付軟體部開發的軟體專案的相關軟體技術 5 負責相關技術文件的擬訂。計算機程式設計師的招聘條件是 1 ...