看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/gwmEd0q.jpg 請問一下各位 老師上課假設 list[1]=a, list[2]=b , list[3]=c 依據副程式perm是產生list[i]到list[n]的排列組合 今天我設i=n=2時, 以下是我的理解: lis[1]跟list[2]作排列組合,也就是a和b作排列組合,會有ab、ba兩種可能 但是根據code的意思,if條件成立時(i=n=2) 當j=1時 會印出list[1]的內容,也就是印出a 當j=2,印出list[2]的內容,也就是印出b 也就是指印出ab一種可能而已 不知道我的認知錯在哪邊 麻煩大家了 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.204.202 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1531405268.A.895.html
wacheck: 忘記補充了,圖中紅線部分就是我的疑問QQ 07/12 22:22
As77: 你的理解是錯的 先確定知道recursion是什麼,終止條件為何是 07/12 22:33
As77: i == n 07/12 22:34
y2j60537: 不管call幾次perm()參數n的值都是3 所以終止條件只會是 07/12 23:12
y2j60537: i=n=3 第一次丟進去的n是多少整個recursion裡面的n就是 07/12 23:12
y2j60537: 多少 07/12 23:12
wacheck: 遞迴的定義我了解 但想請問A大為何要i=n 被問倒了... 07/13 00:09
wacheck: 第一次丟進去的n是多少整個recursion裡面的n就是-->y大可 07/13 00:10
wacheck: 以在說詳細一些嗎QQ 07/13 00:10
y2j60537: perm(list,1,3)=把list的第一項到第三項做排列。使用遞 07/13 01:22
y2j60537: 回定義:排1~3=第一項固定+排2~3項。 那終止條件i=n就是 07/13 01:22
y2j60537: 做到排第3到第3項時 代表已經排完了所以可以output結果 07/13 01:22
y2j60537: 我覺得下面那個流程圖再仔細想一下多帶一些參數練習應 07/13 01:37
y2j60537: 該可以解惑 做個perm(list,2,3),list=abc 注意一下call 07/13 01:37
y2j60537: 到perm(list,i,n)時,那時的list是長什麼樣子 07/13 01:37
wacheck: 感謝解惑!!(跪) 07/13 08:09