作者rnbjacky (浪漫A大調)
看板Grad-ProbAsk
標題Re: [資工] 幾題基本的資料結構
時間Tue Mar 1 23:49:34 2011
2.
http://www.lib.ntu.edu.tw/exam/graduate/98/98398.pdf
這是台大電機的考古題
第二題剛好兩種方式都有
但b.有點錯 while 內要改成
{
Fib[i] = Fib[i-1] + Fib[i-2];
i++;
}
long型態不習慣的話 就把他全改成int
另外iterative有別的寫法 我就忽略啦...
3.
用組合觀點來看的話
他的執行次數等價於 求 滿足 " 1 <= j <= i <= n " 之i,j的組合數
(等價於2相同個球放入 n 個相異箱的方法數)
i.e. C( n+2-1, 2 )
所以執行次數是 ( n*(n+1) ) / 2
用我不知道是什麼的觀點
此執行次數可寫成
n i
Σ Σ 1
i=1 j=1
一個for loop 對應一個 summation
其中執行一行敘述 " x = x + 1; "
表示執行一次 所以放 "1"
解出來也是上面那個答案
4.
同 3. 想法
C( n+3-1, 3 )
or
n i j
Σ Σ Σ 1
i=1 j=1 k=1
1.我不知道您想問什麼
這是很經典的程式
看推文說 您有補習
如果您是先預習而發現不會的話
那不彷您可以等到補習的時候再聽
因為這些東西 都是滿基本的
通常聽完就會 可以不用花太多時間 還要上來ptt po 文 好累~_~
如果您是聽過 或是沒補習 而不懂的話
看看以上有沒有解決您的問題
※ 引述《knight313 (小啾)》之銘言:
: 1.
: void perm (char *list, int i, int n){
: /*產生list[i]到list[n]的所有排列*/
: int j , temp;
: if (i == n){
: for (j = 0;j <= n;j++){
: printf("%c",list[j]);
: printf(" ");
: }
: }
: else{/*list[i]到list[n]之間形成超過一種以上的排列時,遞迴產生他們*/
: for (j = 1 ; j <= n ; j++){
: SWAP(list[i],list[j],temp);
: perm(list,i+1,n);
: SWAP(list[i],list[j],temp);
: }
: }
: }
: -----------------------------------------------------------------------------
: 2.
: 費氏數列的Iterative algorithm or program
: -----------------------------------------------------------------------------
: 3.
: For i=1 to n do
: For j=1 to i do
: x=x+1
: end
: end
: 請問x=x+1這個指令執行幾次,怎麼去思考?
: -----------------------------------------------------------------------------
: 4.
: For i=1 to n do
: For j=1 to i do
: For k=1 to j do
: x=x+1
: end
: end
: end
: x=x+1執行次數?
: 不好意思
: 小弟現在開始拼明年研所考
: 還請各位高人指點
: 如果可以還請站內信MSN
: 一起當書友~
: 感謝...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.120.64.198
推 fxac:受益良多!! 03/02 08:50
→ rnbjacky:= =凸 03/02 09:29
推 knight313:感謝您,我相信我PO文上來還是有些人會受惠的.. 03/02 09:32
→ knight313:大家一起學吧^^ 03/02 09:32
→ rnbjacky:這倒也是 加油! 03/02 09:36
推 knight313:可加你MSN嗎? 03/02 11:10