作者firejox (Tangent)
看板C_and_CPP
標題Re: [問題] 請問關於排列組合程式
時間Fri Aug 12 18:14:02 2011
其實可以轉換一下
變成 如何輸出第k個的 C(m,n) 的排列情形
C(m,n) = C(m-1,n) + C(m-1,n-1)
↓ ↓
沒取 有取
所以 第k個可以變為
fun (k,m,n)
if k > C(m-1,n)
輸出
fun (k - C(m-1,n), m-1, n-1)
else
fun (k , m-1 ,n)
補個範例:
http://pastie.org/2364201
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.129.235
推 Haskell:可以請教fun(k,m,n)的具體意義嗎 譬如k=1, 最後輸出 08/13 07:00
→ Haskell:fun(1,1,1) 這樣代表什麼呢? 謝謝 08/13 07:01
→ firejox:最後到那樣 是已經是邊界 所以要額外處理 08/13 07:18
※ 編輯: firejox 來自: 123.240.129.235 (08/13 10:52)
推 Haskell:感謝範例 08/13 14:01